標籤:style blog http os 2014 io
直接插入排序是一種最簡單的排序方式,它的基本操作是將一個記錄插入已排好序的有序表中,從而得到一個新的、記錄數增1的有序表。時間複雜度為O(n^2),跟冒泡、選擇一樣。
核心代碼:
//按非降序排列void Insert_Sort(int arr[],int len){if(arr == NULL || len <= 0){return;}int i,j,temp;for(i = 1; i < len ; i++){if(arr[i-1] > arr[i]){temp = arr[i];//將較小值存入緩衝區for(j = i-1; j>=0 && arr[j]>temp; j--)//移動元素{arr[j+1] = arr[j];}arr[j+1] = temp;//插入合適位置}}}
完整代碼:
/*直接插入排序by Rowandjj2014/7/18*/#include<iostream>using namespace std;//按非降序排列void Insert_Sort(int arr[],int len){if(arr == NULL || len <= 0){return;}int i,j,temp;for(i = 1; i < len ; i++){if(arr[i-1] > arr[i]){temp = arr[i];//將較小值存入緩衝區for(j = i-1; j>=0 && arr[j]>temp; j--)//移動元素{arr[j+1] = arr[j];}arr[j+1] = temp;//插入合適位置}}}int main(){int arr[] = {9,7,6,5,3,2,4,6};Insert_Sort(arr,8);for(int i = 0; i < 8; i++){cout<<arr[i]<<" ";}cout<<endl;return 0;}
flash示範地址:http://125.71.228.222/wlxt/ncourse/sf/web/web/flashhtml/insertsort.htm