希尔排序验证性实验

来源:互联网 发布:威迅java培训 编辑:程序博客网 时间:2024/06/05 13:33

希尔排序验证性实验

请创建一个一维整型数组用来存储待排序关键码,关键码从数组下标为1的位置开始存储,下标为0的位置不存储关键码。输入关键码的个数,以及各个关键码,采用希尔排序的方法对关键码数组进行排序,输出每轮比较的过程。

这里写图片描述

#include<iostream>using namespace std; void ShellSort(int r[],int n) {    int d,j,i;    for(d=n/2;d>=1;d=d/2)    {        int flag=0;        for(i=d+1;i<=n;i++)        {            r[0]=r[i];            for(j=i-d;j>0&&r[0]<r[j];j=j-d)            {            cout<<r[j]<<" ";            r[j+d]=r[j];            flag=1;             }            r[j+d]=r[0];         }         if(flag==1)        {            cout<<endl;        }     } }int main(){    int i,n,a[100];    cin>>n;    for(i=1;i<=n;i++)//从1开始    {        cin>>a[i];    }     ShellSort(a,n);//添加方法     for(i=1;i<=n;i++)    {        cout<<a[i]<<" ";    }    return 0;}
原创粉丝点击