排序-插入排序
阿新 • • 發佈:2017-08-18
-- using eof ins 排序 void clu sort temp
插入排序的邏輯如下:
- 從第二個元素開始遍歷。
- 並將每個位置的元素和之前的元素比較,如果比之前元素小,則置換位置。
代碼如下:
1 #include <iostream> 2 3 using namespace std; 4 5 void change(int *p,int pos1,int pos2); 6 void insertSort(int *p,int length); 7 void print(int *p,int length); 8 9 int main() 10 { 11 int p[] = {2,5,3,11,89,76,24,33,15}; 12 insertSort(p,sizeof(p)/sizeof(int)); 13 print(p,sizeof(p)/sizeof(int)); 14 cout << "Hello world!" << endl; 15 return 0; 16 } 17 18 void print(int *p,int length) 19 { 20 for(int i=0;i<length;i++) 21 cout << p[i] << endl; 22 } 23 24 void insertSort(int*p,int length) 25 { 26 for(int i=1;i<length;i++) 27 { 28 for(int j=i;j>0&&p[j]<p[j-1];j--) 29 { 30 change(p,j,j-1); 31 } 32 } 33 } 34 35 void change(int *p,int pos1,int pos2) 36 { 37 if(pos1 == pos2) 38 { 39 return; 40 }41 int temp=p[pos1]; 42 p[pos1] = p[pos2]; 43 p[pos2] = temp; 44 }
排序-插入排序