嘻灬嘻 发表于 2017-2-11 11:52:52

测试C 希尔排序

//希尔排序
#include "iostream.h"
#include <process.h>
//using namespace std;//使用命名空间时,要将头文件中的.h去掉
#define N 50
void shell_sort(int a[],int len)
{
    int h,i,j,temp;
    for(h=len/2; h>0; h=h/2)//控制增量
    {
      for(i=h; i<len; i++)//这个for循环就是前面的直接插入排序
      {
            temp=a;
            for(j=i-h; (j>=0&&temp<a); j-=h)//循环打印数组的每个元素
            {
                a=a;
            }
            a=temp;
      }
    }
}

void print_array(int a[], int len)
{
    for(int i=0; i<len; i++)
    {
      cout<<a<<"";
    }
    cout<<endl;
}

void main()
{
    int a;
    int b;
    int M;
    cout<<"请输入要排序的数目"<<endl;
    cin>>M;


    cout<<"请输入要排序的数"<<endl;
    for(int i=0;i<M;i++)
    {
      cin>>b;
      a=b;
    }
    cout<<"beforeshellsort:";
    print_array(a,M);
    shell_sort(a,M);//进行shell排序
    cout<<"aftershellsort:";
    print_array(a,M);
    //return0;
    system("pause");
}

我最正经 发表于 2017-2-11 15:08:45

{:handshake:}
页: [1]
查看完整版本: 测试C 希尔排序