排序算法-插入排序

插入排序

(由小到大排序)

插入排序的思路就是

1从集合第二个元素开始(外循环开始)

2取出该元素 标记为C

3从该元素开始,向前遍历,如果元素大于C,则该元素向后移动一位(内循环)

4直到找到一个小于或者等于C元素(或者到达集合头部),将C放在这个元素的下一位(或者集合头部)

重复1(注意选取下一个元素)(外循环第一趟完成,进入第二趟循环)

 

 

 

代码:

 1  public static void InsertionSort(int[] array)
 2         {
 3             //从第二位开始循环
 4             for (int i = 1; i < array.Length; i++)
 5             {
 6                 //选出一个一般变量
 7                 int c = array[i];
 8                 //从该变量位子开始往前遍历
 9                 for (int j = i - 1; j >= -1; j--)
10                 {
11                     //j==-1已经超过数组区域了
12                     if (j == -1)
13                     {
14                         array[0] = c;
15                         break;
16                     }
17                     //比当前元素大的后移一位
18                     else if (array[j] > c)
19                     {
20                         array[j + 1] = array[j];
21                     }
22                     else
23                     {
24                         if (j + 1 != i)
25                         {
26                             //j+1 != i说明元素位子发生改变
27                             array[j + 1] = c;
28                         }
29                         break;
30                     }
31                 }
32             }
33         }

 

转载于:https://www.cnblogs.com/bigA/p/7359788.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值