插入排序

 1 /**
 2  * 插入排序
 3  * yaoC 2014-09-04
 4  * best:Θ(n)
 5  * worst:Θ(n^2)
 6  */
 7 
 8 #include<iostream>
 9 using namespace std;
10 
11 /**
12  * [insertionSort 插入排序]
13  * @param p   [未排序数组]
14  * @param num [数组长度]
15  */
16 void insertionSort(int* p, int num)
17 {
18     for (int j = 1; j < num; j++)
19     {
20         int key = p[j];
21         int i = j - 1;
22         while (i>=0 && p[i]>key)
23         {
24             p[i+1] = p[i];
25             i = i - 1;
26         }    
27         p[i+1] = key;
28     }
29 }
30 
31 int main()
32 {
33     int num = 0;
34 
35     cout << "个数:";
36     cin >> num;
37     int* p = new int[num];
38     cout << "数值:";
39     for (int i = 0; i < num; i++)
40         cin >> p[i];
41     insertionSort(p, num);
42     cout << "after sorting:";
43     for (int i = 0; i < num; i++)
44         cout << p[i] << " ";
45     cout << endl;
46 }
posted @ 2014-09-06 16:51  yaoC  阅读(184)  评论(0)    收藏  举报