算法复杂度为O(n^2)
基本思想是:类似于摸牌,在手中的牌已经排好序,摸一张牌,寻找合适的位置,一个一个的比较,找到合适的位置插入
#include <QCoreApplication> #include <iostream> #include <algorithm> #include <vector> using namespace std; void insertSort(int a[],int size) { int i,j; for(j=1;j<size;j++) { int key = a[j]; i=j-1; while(i>0 && a[i]>key) { a[i+1]=a[i]; i=i-1; } a[i+1]=key; } } int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); int A[5]={1,3,2,5,4}; insertSort(A,5); for(auto s:A) { cout<<s<<" "; } cout<<endl; return a.exec(); }