鱼C论坛

 找回密码
 立即注册
查看: 6603|回复: 14

[扩展阅读] 各种各这样的排序算法:希尔排序(*)

[复制链接]
发表于 2016-12-7 23:01:21 | 显示全部楼层 |阅读模式
购买主题 已有 12 人购买  本主题需向作者支付 10 鱼币 才能浏览
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-9 16:13:56 | 显示全部楼层
为什么排序算法看的人这么少
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-9 16:14:02 | 显示全部楼层
本帖最后由 超凡天赐 于 2017-3-9 16:19 编辑

为什么排序算法看的人这么少
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-20 17:03:00 | 显示全部楼层
超凡天赐 发表于 2017-3-9 16:14
为什么排序算法看的人这么少

步伐不一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-17 13:27:38 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-12 22:48:03 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-27 22:02:26 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-28 09:06:22 | 显示全部楼层
  1. #include <stdio.h>

  2. void shell_sort(int array[], int length);

  3. void shell_sort(int array[], int length)
  4. {
  5.         int i, j, step, temp;

  6.         for (step = length / 2; step > 0; step /= 2)
  7.         {
  8.                 for (i = step; i < length; i++)
  9.                 {
  10.                         temp = array[i];
  11.                         for (j = i - step; j >= 0 && array[j] > temp; j -= step)
  12.                         {
  13.                                 array[j+step] = array[j];
  14.                         }
  15.                         array[j+step] = temp;
  16.                 }
  17.         }
  18. }

  19. int main(void)
  20. {
  21.         int array[] = {73, 108, 111, 118, 101, 70, 105, 115, 104, 67, 46, 99, 111, 109};
  22.         int i, length;

  23.         length = sizeof(array) / sizeof(array[0]);
  24.         shell_sort(array, length);

  25.         printf("排序后的结果是:");
  26.         for (i = 0; i < length; i++)
  27.         {
  28.                 printf("%d ", array[i]);
  29.         }
  30.         putchar('\n');

  31.         return 0;
  32. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-28 09:23:22 | 显示全部楼层
  1. #include<stdio.h>
  2. void shell(int a[],int len)
  3. {
  4.         int i,j,tem,step;
  5.         for(step = len/2; step > 0; step /= 2)
  6.         {
  7.                 for(i = step;i < len;i++)
  8.                 {
  9.                         tem = a[i];
  10.                         for(j = i - step;j >= 0 && a[j] > tem;j -= step)
  11.                         {
  12.                                 a[j + step] = a[j];
  13.                         }
  14.                         a[j + step] = tem;
  15.                 }
  16.         }
  17.        
  18. }
  19. int main(void)
  20. {
  21.         int i,len;
  22.         int array[] = {73, 108, 111, 118, 101, 70, 105, 115, 104, 67, 46, 99, 111, 109};
  23.         len = sizeof(array)/sizeof(array[0]);
  24.         printf("希尔排序前的数组:");
  25.         for(i = 0;i < len;i++)
  26.         {
  27.                 printf("%d ",array[i]);
  28.         }
  29.         putchar('\n');
  30.         shell(array,len);
  31.         printf("希尔排序后的数组:");
  32.         for(i = 0;i < len;i++)
  33.         {
  34.                 printf("%d ",array[i]);
  35.         }
  36.         putchar('\n');
  37.         return 0;
  38. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-4 11:05:25 | 显示全部楼层
#include<stdio.h>
void shell(int a[],int len)
{
        int i,j,tem,step;
        for(step = len/2; step > 0; step /= 2)
        {
                for(i = step;i < len;i++)
                {
                        tem = a[i];
                        for(j = i - step;j >= 0 && a[j] > tem;j -= step)
                        {
                                a[j + step] = a[j];
                        }
                        a[j + step] = tem;
                }
        }
        
}
int main(void)
{
        int i,len;
        int array[] = {73, 108, 111, 118, 101, 70, 105, 115, 104, 67, 46, 99, 111, 109};
        len = sizeof(array)/sizeof(array[0]);
        printf("希尔排序前的数组:");
        for(i = 0;i < len;i++)
        {
                printf("%d ",array[i]);
        }
        putchar('\n');
        shell(array,len);
        printf("希尔排序后的数组:");
        for(i = 0;i < len;i++)
        {
                printf("%d ",array[i]);
        }
        putchar('\n');
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-4 11:06:59 | 显示全部楼层
  1. #include<stdio.h>
  2. void shell(int a[],int len)
  3. {
  4.         int i,j,tem,step;
  5.         for(step = len/2; step > 0; step /= 2)
  6.         {
  7.                 for(i = step;i < len;i++)
  8.                 {
  9.                         tem = a[i];
  10.                         for(j = i - step;j >= 0 && a[j] > tem;j -= step)
  11.                         {
  12.                                 a[j + step] = a[j];
  13.                         }
  14.                         a[j + step] = tem;
  15.                 }
  16.         }
  17.         
  18. }
  19. int main(void)
  20. {
  21.         int i,len;
  22.         int array[] = {73, 108, 111, 118, 101, 70, 105, 115, 104, 67, 46, 99, 111, 109};
  23.         len = sizeof(array)/sizeof(array[0]);
  24.         printf("希尔排序前的数组:");
  25.         for(i = 0;i < len;i++)
  26.         {
  27.                 printf("%d ",array[i]);
  28.         }
  29.         putchar('\n');
  30.         shell(array,len);
  31.         printf("希尔排序后的数组:");
  32.         for(i = 0;i < len;i++)
  33.         {
  34.                 printf("%d ",array[i]);
  35.         }
  36.         putchar('\n');
  37.         return 0;
  38. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-31 08:38:36 | 显示全部楼层

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-3 18:18:12 | 显示全部楼层
好好学习才能天天向上!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-28 11:27:35 | 显示全部楼层
自己要实现是真的费劲
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-1 21:31:35 | 显示全部楼层
很多人觉得nan
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 21:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表