1. 程式人生 > >排序-插入排序

排序-插入排序

-- using eof ins 排序 void clu sort temp

插入排序的邏輯如下:

  1. 從第二個元素開始遍歷。
  2. 並將每個位置的元素和之前的元素比較,如果比之前元素小,則置換位置。

代碼如下:

 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 }

排序-插入排序