首页 > 其他分享 >希尔排序

希尔排序

时间:2022-10-21 16:33:55浏览次数:50  
标签:temp int length increasement 希尔 printf 排序 shellSort


希尔排序的实现

#include <stdio.h>
void shellSort(int a[],int length)
{
int increasement;
int i,j;
int temp;
for(increasement=length/2;increasement>0;increasement/=2) //选择步长
{
for(i=increasement;i<length;i++)
{
temp=a[i];
for(j=i-increasement;j>=0&&temp<a[j];j-=increasement) //相邻组内元素进行比较
{
a[j+increasement]=a[j]; //元素后移
}
a[j+increasement]=temp; //插入元素
}
}
}
int main()
{
int i;
printf("shell:\n");
int a[]={18, 5, 151, 138, 160, 63, 174, 169, 79, 200};
shellSort(a,10);
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
return 0;
}



标签:temp,int,length,increasement,希尔,printf,排序,shellSort
From: https://blog.51cto.com/u_15840342/5783645

相关文章

  • 成绩排序
    题目:(王道1061)有N个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母序排序,如果姓名的字母序也相同则按照学生的年龄排序,并输出N个学生排序后的信息。输......
  • 【自然语言处理(NLP)】随机数生成与排序
    【自然语言处理(NLP)】随机数生成与排序作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与产业实践资源建......
  • 排序算法
    1、归并排序归并是把两个或两个以上有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的,然后把有序子序列合并为整体有序序列。注意:在递归中......
  • python | 算法-拓扑排序
    写在前面:我自己用python练习算法与数据结构的典型算法汇总在这里:汇总-算法与数据结构-python版,欢迎翻阅!1️⃣参考链接:https://github.com/algorithmzuo/algorithmbasic......
  • sql语句排序无效的问题
    数据可视化时因为数据类型排序无效的问题:这是由于你要排序的类型是String类型的而ORDERBY方法排序要求整数型。这就需要在ORDERBY后加CAST(需要排序的字段A......
  • 【数据结构/C语言】用链栈对整数进行升序排序
    #pragmawarning(disable:4996)#include<stdio.h>#include<stdlib.h>typedefintElemtype; typedefintStatus;typedefstructStack*SqList;typedefstructSt......
  • 基于Redis实现点赞、点赞用户按时间排序、好友关注和共同关注等业务
    点赞功能业务说明1、每个用户只能点一次赞,再次点击时取消点赞2、在Blog属性中增加isLike字段,用于判断当前用户是否点赞3、isLike的值从Redis中获取,可以用redis自带的......
  • 冒泡排序自写
    /***冒泡排序*/publicvoidcodeGgt1(){int[]a={4,2,6,8,9,3,6,0};for(intj=a.length;j>1;j--){for(inti=0;i<a.length-1;i++){if(a[i]>......
  • MySQL分组排序取每组第一条
    1.使用group_concat函数,但是弊端只能查询groupby后的字段参考: MySQL分组排序取每组第一条(最大值、最小值)MySQL的GROUP_CONCAT函数详解效果: ......
  • 设计题:排序算法
    学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:按分数降序排列学生的记录,高分在前,低分在后。注意:请勿改动主函数main和其它......