zoukankan      html  css  js  c++  java
  • 希尔排序

    问题:希尔排序又叫缩小增量排序。增量的选取为d=length/2;d=d/2...d=1;

    代码:

    #include <iostream>
    using namespace std;
    
    void shellSort(int arr[],int length)
    {
    	int d;
    	int temp;
    	int j,k;
    	static int count=1;
    	for(d=length/2;d>=1;d=d/2)
    	{
    		for(j=d;j<length;j++)
    		{
                for(k=j-d;k>=0;k=k-d)
    			{
    				if(arr[k]>arr[k+d])
    				{
    					temp=arr[k+d];
    					arr[k+d]=arr[k];
    					arr[k]=temp;
    				}
    			}
    		}
    		cout<<"第"<<count<<"趟希尔排序:";
    		for(int i=0;i<length;i++)
    		{
    			cout<<arr[i]<<" ";
    		}
    		cout<<endl;
    	}
    }
    
    void display(int arr[],int length)
    {
    	int i;
    	for(i=0;i<length;i++)
    	{
    		cout<<arr[i]<<" ";
    	}
    	cout<<endl;
    }
    
    int main()
    {
    	int array[]={7,2,34,8,7,68,1,30,21,6};
    	cout<<"希尔排序前:"<<endl;
    	display(array,10);
    	shellSort(array,10);
    	cout<<"希尔排序后:"<<endl;
    	display(array,10);
    	return 0;
    }
    

    运行结果:

  • 相关阅读:
    每日总结4.25
    每日总结4.24
    每日总结4.23
    每日博客4.22
    每日博客4.21
    每日博客4.20
    每日总结4.19
    每日总结4.16
    每日总结4.15
    每日总结4.14
  • 原文地址:https://www.cnblogs.com/xshang/p/3102379.html
Copyright © 2011-2022 走看看