代码如下:
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 static void insertionSort(vector<int> &v){ 5 int sz = v.size(); 6 for(int i=1;i<sz;i++){ 7 int num = v[i]; 8 int j = i - 1; 9 while(j>=0 && v[j]>num){ 10 v[j+1] = v[j]; 11 --j; 12 } 13 v[j+1] = num; 14 } 15 return; 16 } 17 18 int main(){ 19 int n; 20 while(cin>>n){ 21 vector<int> v(n); 22 for(int i=0;i<n;i++) 23 cin>>v[i]; 24 insertionSort(v); 25 for(int num : v) 26 cout<<num<<","; 27 } 28 return 0; 29 }
这就像是打扑克一样,原手牌有序,拿到新牌过后依次比较,直接找到目标位置插入
插入排序法师稳定排序,时间复杂度O(n²),初始序列相对有序时,处理迅速。
浙公网安备 33010602011771号