内排序之插入排序

来源:互联网 发布:淘宝网 无法购买 编辑:程序博客网 时间:2024/06/05 16:37
//插入排序之直接插入排序#include <iostream>using namespace std;int R[100];int n;//所需排列的序列元素的个数void main(int R[],int n){int i,j;int tmp;for(i=1;i<n;i++)//从第二个元素开始{if(R[i]<R[i-1])//提高效率{tmp=R[i]; j=i-1;while( j>=0&&R[j]>tmp){R[j+1]=R[j];j--;}R[j+1]=tmp;}}}

//插入排序之希尔插入排序#include <iostream>using namespace std;int R[100];int n;//所需排列的序列元素的个数void main(int R[],int n){int i,j;int tmp;int d=n/2;while(d>0){for(i=d;i<n;i++)//从第二个元素开始且d组“同步”进行{if(R[i]<R[i-d])//提高效率{tmp=R[i]; j=i-d;while( j>=0&&R[j]>tmp){R[j+d]=R[j];j-=d;}R[j+d]=tmp;}}d=d/2;}}

0 0
原创粉丝点击