算法笔记1-排序-插入排序

插入排序的工作方式就像排序一手扑克牌。开始时,我们的左手为空,然后,我们每次从桌上拿走一张牌并将它插入到左手中正确的位置。为了找到正确的位置,我们总是从右到左将它与左手中的每张牌进行比较。这样,左手中的牌始终是排好序的,直到最后一张。

插入排序的时间复杂度是O(n^2),因此,对于小规模问题,能有效解决,但是对于大规模排序,可能就要选择其他排序方法。

void insertion_sort(int *a,int n)//a为数组,n为数组个数  
{  
    int i,j,key;  
  
    for (j = 1;j < n;j++) {  
        key = a[j];  
        i = j - 1;  
        while (i >= 0 && a[i] > key) {  
            a[i+1] = a[i];  
            i--;  
        }     
        a[i+1] = key;  
    }  
}

  

原文地址:https://www.cnblogs.com/yk123/p/8301685.html