最简单的排序算法了,每一次j--到对应的值,不会减到0,这个纠结我好久
1 #include "stdafx.h"
2 #include <iostream>
3 #include <vector>
4 using namespace std;
5
6 template <typename Comparable>
7 void insertionSort(vector<Comparable> & a)
8 {
9 int j;
10 for(int p=1 ; p<a.size() ; p++)
11 {
12 Comparable tmp = a[p];
13 for(j=p ; j>0 && tmp<a[j-1] ; j--)
14 a[j] = a[j-1];
15 a[j] = tmp;
16 }
17 }
18 int _tmain(int argc, _TCHAR* argv[])
19 {
20 vector<int> ivec;
21 ivec.push_back(34);
22 ivec.push_back(8);
23 ivec.push_back(64);
24 ivec.push_back(51);
25 ivec.push_back(32);
26 ivec.push_back(21);
27 insertionSort(ivec);
28 for(int i=0 ; i<ivec.size() ; i++)
29 cout<<ivec[i]<<endl;
30 return 0;
31 }
执行结果: