排序算法总结(三)插入排序

来源:互联网 发布:php求数组最大值 编辑:程序博客网 时间:2024/04/30 00:35

插入排序的原理是从数组的某个位置开始依次和前面的位置数相比,找到插入位置,将数插入到该位置,这样多次插入后,得到的将是一个有序数组。


参考代码:

#include <iostream>using namespace std;void InsertSort(int *arrays,int len);int main(void){int i;int arrays[]={9,8,7,6,5,4,3,2,1};InsertSort(arrays,9);for (i=0;i<9;i++){cout << arrays[i] <<" ";}cout <<endl;return 0;}void InsertSort(int *arrays,int len){int i,j,k;int tmp;for (i=1;i<len;i++){j=i-1;while (arrays[i]<arrays[j] && j>=0){j--;}tmp=arrays[i];for (k=i;k>j+1;k--){arrays[k]=arrays[k-1];}arrays[j+1]=tmp;}}

插入排序是稳定的排序,需要一个辅助空间,最好的情况下数组是有序的只要扫描一次时间复杂度为O(n), 最坏的情况下数组是待排序的逆序,时间复杂度为O(n2) 

原创粉丝点击