`
baby69yy2000
  • 浏览: 187683 次
  • 性别: Icon_minigender_1
  • 来自: 自己输入城市...
社区版块
存档分类
最新评论

希尔排序(Shell Sort)

J# 
阅读更多

#include<stdio.h></stdio.h>
void ShellSort(int arr[],int *size);
int main()
{
 int a[10],*p,i;
 printf("Please input NO:\n");
 for(i=0;i<10;i++)
  scanf("%d",&a[i]);
 p=&i;
 ShellSort(a,p);
 printf("Sort After is:");
 for(i=0;i<10;i++)
  printf("%3d",a[i]);
 return 0;
}
void ShellSort(int arr[],int *size)
{
 for(int gap=*size/2;gap>0;gap/=2)
  for(int i=gap;i<*size;i++)
  {
   int temp=arr[i];
   int j=i;
   for(;j>=gap && temp     arr[j]=arr[j-gap];
   arr[j]=temp;
  }
}

  • 大小: 69 KB
  • 大小: 72.7 KB
  • 大小: 72.5 KB
分享到:
评论

相关推荐

    基于python的排序算法-希尔排序Shell Sort

    希尔排序(Shell Sort)是一种插入排序的改进版,由Donald Shell在1959年提出。它是通过将待排序的数据序列划分为多个子序列,然后对每个子序列进行插入排序,逐渐减少子序列的间隔,直到间隔为1,即整个序列成为一...

    C++实现简单的希尔排序Shell Sort实例

    本文以实例形式讲述了基于C++实现简单的希尔排序Shell Sort的方法,是一个很经典的算法,具体实现代码如下: #include using namespace std; void ShellSort(int* iArray,int length) { //初始化jump等于length ...

    数据结构 希尔(shell)排序

    // ShellSort 函数实现整个希尔排序过程 void ShellSort(int a[], int length) { int dk, k; for (dk = (length + 1) / 2; dk &gt;= 1; dk /= 2) { // 确定增量序列 ShellInsert(a, dk, length); // 对每个增量进行...

    希尔排序 又称shell排序

    ### 希尔排序(Shell Sort)详解 #### 一、引言 希尔排序是一种基于插入排序的高效排序算法,由计算机科学家Donald Shell在1959年提出。该算法通过将原始序列分割成多个子序列,分别进行插入排序来提高排序效率。...

    希尔排序(Shell Sort)是一种改进版的插入排序算法.pdf

    希尔排序在上述代码中,`shellSort`函数实现了希尔排序算法。首先,通过`gap`将数组分成多个子序列,然后对每个子序列进行插入排序。随着排序的进行,`gap`逐渐减小,直到`gap`为1,最后对整个数组进行一次插入排序...

    数据结构之希尔排序算法程序

    希尔排序(Shell Sort)是一种基于插入排序的快速排序算法,由Donald Shell于1959年提出。它的主要思想是将待排序的数据按照一个增量序列分成若干个子序列,然后对每个子序列进行插入排序,最后再进行一次全局的插入...

    希尔排序算法源代码

    在实现希尔排序时,常见的增量序列有Hibbard序列、Sedgewick序列、Shellsort 3/2序列等。选择不同的序列会影响排序的速度和效果。 希尔排序源代码的关键部分通常包括以下函数: 1. `shell_sort()`:主函数,调用...

    经典算法的C#源码实现

    经典排序算法 - 希尔排序Shell sort 经典排序算法 - 堆排序Heap sort序 经典排序算法 - 地精排序Gnome Sort 经典排序算法 - 奇偶排序Odd-even sort 经典排序算法 - 梳排序Comb sort 经典排序算法 - 耐心排序...

    C语言_希尔排序希尔排序

    希尔排序(Shell Sort)是由Donald Shell在1959年提出的一种基于插入排序的改进算法。它的主要思想是通过设置一系列的增量序列,逐步减少这些增量,将待排序的元素进行分组,然后在每个小组内进行直接插入排序。这个...

    希尔排序(Shell Sort)

    使用MATLAB实现一个简单的希尔排序的例子

    希尔排序java代码

    这段代码中,`shellSort`方法实现了希尔排序的核心逻辑,`main`方法则创建了一个测试用例并调用了排序方法。`TestShellSort.java`可能包含了对该排序算法的测试和性能评估,具体实现要看源代码内容。 希尔排序的优...

    算法可视化系列——排序算法——希尔排序

    通常,Java代码会包含一个名为`shellSort()`的函数,它接收一个整数数组作为参数,并对其进行希尔排序。以下是希尔排序的基本步骤: 1. 定义初始间隔`gap`,一般选择序列的第一个值。 2. 对每个子序列`arr[i], arr...

    shellsort希尔排序算法增加最佳组合1

    Marcin Ciura在“Best Increments for the Average Case of Shellsort”论文中提出了一种新的增量序列,该序列经过分析后,能将希尔排序的平均运行时间降低约3%,并且有理由相信这些序列可能是最优的。 传统上,...

    合并排序,插入排序,希尔排序,快速排序,冒泡排序,桶排序的C语言实现

    3. **希尔排序(Shell Sort)**: 希尔排序是插入排序的一种优化版本,通过将待排序的元素按某个增量分组,然后对每组进行插入排序,逐渐减少增量,直到增量为1,完成排序。希尔排序的时间复杂度在最坏情况下为O(n^...

    希尔排序的Java实现方法ShellSort

    希尔排序的Java实现方法ShellSort,简单易懂,适合算法初学者。

    希尔排序的代码

    在主函数 `main()` 中,程序通过用户输入来确定数组的大小以及每个元素的值,随后调用 `ShellSort` 类的方法完成希尔排序过程,并输出排序后的结果。 #### 希尔排序的效率分析 希尔排序的时间复杂度取决于增量序列...

    希尔排序(Shell Sort).md

    在B站讲希尔排序的笔记,需要的同学可以免费下载

    希尔排序源代码

    希尔排序(Shell Sort)是一种基于插入排序的快速排序算法,由Donald Shell于1959年提出。它的主要思想是将待排序的数据按照一个增量序列分成若干个子序列,然后对每个子序列进行插入排序,最后再进行一次全局的插入...

    希尔排序C语言实现

    void shellSort(int arr[], int n) { int gap, i, j, temp; for (gap = n / 2; gap &gt; 0; gap /= 2) { for (i = gap; i ; i++) { temp = arr[i]; j = i; while (j &gt;= gap && arr[j - gap] &gt; temp) { arr[j]...

Global site tag (gtag.js) - Google Analytics