INSERTION-SORT插入排序

来源:互联网 发布:五轴工具磨床编程软件 编辑:程序博客网 时间:2024/05/16 11:51

插入排序算法的实现是比较简单的。

 首先给出插入排序的代码。

#include<iostream>using namespace std;int main(){int n;cin >> n;int a[n];for (int i = 0; i<n; i++)cin >> a[i];for (int i = 1; i<n; i++)//此段为插入排序的实现{int key = a[i];int j = i - 1;while (j >= 0 && a[j]>key){a[j + 1] = a[j];j--;}a[j + 1] = key;}for (int i = 0; i<n; i++)cout << a[i] << " ";cout << endl;return 0;}

下面讲述其实现过程:

参照插入排序的实现可以发现,首先把序列分为两部分,第1项为前一部分,第2项至第n项为后一部分。

此时我们可以假设第1项是排好序的(因为只有1项),然后让第2项与第1项比较大小,如果第2项小于第1项,则第2项插入第1项之前,反之则不发生变化。此时前两项是排好序的。

以此类推,当第j项时,前j-1项是排好序的,让第j项与前面的部分依次比较,直到插入到合适的位置为止。

最后得到排好序的序列。

         

0 0