插入排序是最基礎的排序算法,原理:
首先1個元素肯定是有序的,所以插入排序從第二個元素開始遍歷;
內循環首先請求一個空間保存待插入元素,從當前元素向數組起始位置反向遍歷;
當發現有大於待插入元素的元素,則將此元素向后挪一位,最終將緩沖區的元素放入空白位置。
void insert_sort(int a[],int n) { int i,j,temp; for(i=1; i<n; i++) { temp=a[i]; for(j=i; j>0; j--) { if(temp<a[j-1]) { a[j]=a[j-1]; }else{ break; } } a[j]=temp; } }
有圖有真相: