本文主要是介绍straight insertion sorting,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
直接插入排序算法:第一个元素作为有序序列,从第二个元素开始,在其之前的序列里找到对应的位置,然后插入。
下面用了tmp作为哨兵。
#include <iostream>
using namespace std;const int Nn = 100010;
int a[Nn];int main() {int n;int tmp;cin >> n;for (int i = 0; i < n; ++i) {cin >> a[i];}for(int i = 1; i < n; i++){tmp = a[i];if(a[i] < a[i-1]){a[i] = a[i-1];for(int j = i -2; j >= 0; j--){if(tmp > a[j]){a[j+1] = tmp;break;}else{a[j+1] = a[j];if(j==0) a[0] = tmp;}}}}for (int i = 0; i < n; ++i) {cout << a[i] << ' ';}
}
这篇关于straight insertion sorting的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!