zoukankan      html  css  js  c++  java
  • 直接插入排序

    一、实现思想

    1、假设已经有一个有序区(没有的话通常选择第一个元素作为有序区),然后从无序区中选一个元素和有序区进行比较,找到合适位置,最后插入

    二、实现例子(以一个数组为例)

    三、实现代码

     1 #include <stdio.h>
     2 void insert_sort(int p[], int length)
     3 {
     4     int i, j;
     5     int temp; //作为一个中间值,这个很重要,也是巧妙的地方,为有序区往后移,提供一个空格
     6     for (i = 1; i < length; i++)
     7     {
     8         temp = p[i];
     9         for (j = i - 1; j >= 0 && temp < p[j]; j--)
    10             p[j + 1] = p[j];
    11         p[j + 1] = temp;
    12     }
    13 }
    14 int main(void)
    15 {
    16     int array[5] = {12, 30, 25, 9, 18};
    17     for (int i = 0; i < 5; i++)
    18         printf("%d    ", array[i]);
    19     insert_sort(array, 5);
    20     printf("
    ");
    21     for (int i = 0; i < 5; i++)
    22         printf("%d    ", array[i]);
    23 }
    24 /* 
    25 输出
    26 ————————————————————————————————
    27 12    30    25    9    18    
    28 9    12    18    25    30
    29 ————————————————————————————————
    30  */

    (ps:我这里显示了行号,复制也会一同复制过去。你应该会竖直选择然后删除吧)

  • 相关阅读:
    webpack:loader编写
    架构之路:从概念开始
    AtCoder Regular Contest 114(A-C)
    12-UE4-控件类型
    10-UE4-蓝图定义简介
    11-UE4-UMG UI设计器
    UE4-目录结构简介
    UE4-字符串
    官方Spring Boot starters整理
    Java是引用传递还是值传递?
  • 原文地址:https://www.cnblogs.com/coderon/p/13412979.html
Copyright © 2011-2022 走看看