Java希尔排序方法怎么使用

这篇文章主要讲解了“Java希尔排序方法怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java希尔排序方法怎么使用”吧!

巴彦淖尔网站建设公司成都创新互联,巴彦淖尔网站设计制作,有大型网站制作公司丰富经验。已为巴彦淖尔上千多家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的巴彦淖尔做网站的公司定做!

    用希尔排序法对一组数据由小到大进行排序,数据分别为69、56、12、136、3、55、46、99、88、25。
希尔排序的全过程如下:
Java希尔排序方法怎么使用
代码实现:

/*第九天、希尔排序*/#include #include /*****************************************************************************************希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效 **的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。            **希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少 **每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。            ******************************************************************************************/

/******************************************* *函数名称:Shsort 
*参数说明:pDataArray 无序数组指针*          iDataNum   无序数据个数 
*说明:    希尔排序 
********************************************/  
void Shsort(int* pDataArray,int iDateNumn)
{    int i,j,d;    d = iDateNumn / 2;                                   /*确定固定增量值,设为数组长度的一半*/    while(d >= 1)                                        /*增量等于1退出循环*/    {
   
   
           for(i = d;i < iDateNumn;i++)                     /*数组下标从d开始进行直接插入排序*/        {                                                /*也就是数组的第d+1个元素*/            int temp = pDataArray[i];                    /*设置监视哨,元素最右边的位置*/            j = i - d;                                   /*确定要进行比较的元素的最左边位置*/            while((j >= 0) && (temp < pDataArray[j]))    /*从后向前,找到比其小的数的位置*/            {
   
   
                   pDataArray[j + d] = pDataArray[j];       /*数据右移*/                j -= d;                                  /*向左移动d个位置*/            }            if (j != i - d)                              /*存在比其小的数*/                pDataArray[j + d] = temp;                /*在确定的位置插入pDataArray[i]*/        }        d = d / 2;    }}

/******************************************* *函数名称:main
*参数说明:无
*说明:    主函数 
********************************************/  
void main(void)
{    int pDataArray[10],i;                            printf("请输入10个数据:\n");    for(i = 0;i < 10;i++)        scanf("%d",&pDataArray[i]);    Shsort(pDataArray,10);    printf("排序后的顺序是:\n");    for(i = 0;i < 10;i++)        printf("%5d",pDataArray[i]);    printf("\n");    system("pause");}

结果显示:
Java希尔排序方法怎么使用

感谢各位的阅读,以上就是“Java希尔排序方法怎么使用”的内容了,经过本文的学习后,相信大家对Java希尔排序方法怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


网站标题:Java希尔排序方法怎么使用
链接地址:http://ybzwz.com/article/gisggi.html