插入排序

来源:互联网 发布:东方网络为什么跌停 编辑:程序博客网 时间:2024/05/07 22:35

排序思路:扫描数组,寻找自己应该处于的位置,然后插入即可。

如:{12,1,12,3,4}。排序过程如下,红色为找到因该插入的位置。橙色为已经排好序的部分。

 

 每次寻找插入位置的时间为O(N),寻找次数N。所以时间复杂度为:O(N*N)。该算法是稳定的排序算法。

C++:#include <iostream>using namespace std;namespace mySort{         voidinsertSort(int * ar, int len)         {                   inttemp = -1;                   for(int i = 0; i < len - 1; ++i)                   {                            intj = i + 1;                            temp= ar[j];                            while(j>0)                            {                                     if(temp < ar[j - 1])                                     {                                               ar[j]= ar[j - 1];                                               --j;                                     }                                     else                                               break;                            }                            ar[j]= temp;                   }         }}; 


0 0
原创粉丝点击