排序算法之一插入排序

来源:互联网 发布:餐饮软件 编辑:程序博客网 时间:2024/06/05 08:30

写在最前面的话:最近重新复习了一下排序算法,并自己照着书写了一遍,在这里与大家分享一下吧!

1:直接插入排序算法

#include <iostream>using namespace std;//直接插入排序算法void InsertSort(int r[],int n){int i,j;for (i=1;i<n;i++){int temp=r[i];for (j=i;(temp<r[j-1])&&(j>0);j--)r[j]=r[j-1];r[j]=temp;}}int main (){int r[]={9,8,7,6,4,5,3,1,2,0};InsertSort(r,10);for (int i=0;i<10;i++)cout<<r[i]<<" ";cout<<endl;return 0;}

这是一种稳定算法。


2:希尔排序算法

#include <iostream>using namespace std;//希尔排序算法void ShellSort(int r[],int n){int d;for (d=n/2;d>=1;d=d/2){int i,j;for (i=d;i<n;i++){int temp=r[i];for (j=i-d;(temp<r[j])&&(j>=0);j=j-d)r[j+d]=r[j];r[j+d]=temp;}}}int main (){int r[]={9,8,7,6,4,5,3,1,2,0};ShellSort(r,10);for (int i=0;i<10;i++)cout<<r[i]<<" ";cout<<endl;return 0;}
这是一种不稳定算法。

原创粉丝点击