C#算法----(三)希尔排序

原创 2001年10月10日 11:34:00

 

朋友们,我最近加紧写C#的一些算法。选择排序,插入算法是我已经推出的。现推出希尔排序.今后,如有时间我将依次推出其它的算法编写。
希尔排序是将组分段,进行插入排序.
对想提高C#语言编程能力的朋友,我们可以互相探讨一下。
如:下面的程序,并没有实现多态,来,帮它实现一下。using System;
public class ShellSorter
{
  public void Sort(int [] list)
  {
      int inc;
      for(inc=1;inc<=list.Length/9;inc=3*inc+1);
      for(;inc>0;inc/=3)
      {
          for(int i=inc+1;i<=list.Length;i+=inc)
        {
          int t=list[i-1];
          int j=i;
          while((j>inc)&&(list[j-inc-1]>t))
          {
            list[j-1]=list[j-inc-1];
            j-=inc;
          }
          list[j-1]=t;
        }
      }
    }
}
public class MainClass
{
    public static void Main()
    {
    int[] iArrary=new int[]{1,5,3,6,10,55,9,2,87,12,34,75,33,47};
    ShellSorter sh=new ShellSorter();
    sh.Sort(iArrary);
    for(int m=0;m<=13;m++)
    Console.WriteLine("{0}",iArrary[m]); 
      }
}
已经编译通过.

【算法】希尔排序C语言实现

上一篇文章我们一起学习了直接插入排序,它的原理就是把前i个长度的序列变成有序序列,然后循环迭代,直至整个序列都变为有序的.但是说来说去它还是一个时间复杂度为(n^2)的算法,难道就不能再进一步把时间复...
  • lchad
  • lchad
  • 2015年02月06日 14:20
  • 4653

经典排序算法---希尔排序(C/C#)

原理:每隔sp(整数)个数即取数并判断大小,交换,先构造局部有序序列,直到sp为1,构造完整的有序序列。         给出一组数据,如下: 0 1 2 3 4 5 ...
  • lucky51222
  • lucky51222
  • 2014年05月18日 00:57
  • 2352

数据结构之---C语言实现希尔排序

数据结构之---C语言实现希尔排序
  • u012965373
  • u012965373
  • 2015年09月08日 13:43
  • 4956

c#排序算法 冒泡,插入,希尔,选择,堆排序

  • 2010年08月02日 18:44
  • 28KB
  • 下载

C++、C#、java算法学习日记05----希尔排序(ShellSort)

希尔排序是插入式排序的一种,也称缩小增量排序,是对 直接插入排序  的一种更高效的改进算法, 基本思想:      希尔排序是把记录按下标的一定增量(也就是按一定的步长)分组,对每组使用直接插...
  • HC666
  • HC666
  • 2015年11月01日 18:14
  • 838

经典排序算法---希尔排序(C/C#)

原理:每隔sp(整数)个数即取数并判断大小,交换,先构造局部有序序列,直到sp为1,构造完整的有序序列。         给出一组数据,如下: 0 1 2 3 4 5 ...
  • lucky51222
  • lucky51222
  • 2014年05月18日 00:57
  • 2352

C#算法系列(5)——希尔排序、堆排序

这几天一直在整理排序算法,并想挨个实现出来,个人认为实现算法的代码多敲总不是坏事,写多了自然感觉就出来了。今天想要实现的希尔排序和堆排序,首先介绍这两种排序算法的实现原理,后面再上具体实现代码。一、希...
  • qq_24642743
  • qq_24642743
  • 2017年12月03日 15:44
  • 25

白话经典算法系列之三 希尔排序的实现

希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直...
  • u013474436
  • u013474436
  • 2015年09月24日 16:21
  • 290

白话经典算法系列之三 希尔排序的实现

转自:http://blog.csdn.net/morewindows/article/details/6668714#quote 希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.S...
  • cos_sin_tan
  • cos_sin_tan
  • 2012年11月09日 19:15
  • 889

三大排序算法(Bubble/Quick/Shell)冒泡、快排、希尔......

最近两天在为找工作复习准备。特此总结了数据结构中内部排序一章中提到的三大排序算法。做了简单实现。 // Sort.cpp : Defines the entry point for the ...
  • ewanyou
  • ewanyou
  • 2011年09月10日 16:48
  • 874
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#算法----(三)希尔排序
举报原因:
原因补充:

(最多只允许输入30个字)