C#排序算法 之 希尔排序
2007-06-25 13:35
204 查看
using System;
namespace ShellSorter
{
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,13,6,10,55,99,2,87,12,34,75,33,47};
ShellSorter sh=new ShellSorter();
sh.Sort(iArrary);
for(int m=0;m<iArrary.Length;m++)
{
Console.Write("{0} ",iArrary[m]);
Console.WriteLine();
}
}
}
}
namespace ShellSorter
{
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,13,6,10,55,99,2,87,12,34,75,33,47};
ShellSorter sh=new ShellSorter();
sh.Sort(iArrary);
for(int m=0;m<iArrary.Length;m++)
{
Console.Write("{0} ",iArrary[m]);
Console.WriteLine();
}
}
}
}
相关文章推荐
- C#排序算法 之 希尔排序
- C#排序算法 之 希尔排序
- C#排序算法 之 希尔排序
- C#排序算法:冒泡排序 选择排序 插入排序 希尔排序
- C#排序算法:冒泡排序 选择排序 插入排序 希尔排序
- c#排序算法——插入排序(直接插入排序和希尔排序)
- 排序算法(一) 插入排序和希尔排序
- 八大排序——希尔排序
- 选择排序、插入排序、希尔排序和冒泡排序-Java实现
- ShellSort 希尔排序
- 关于希尔排序的时间复杂度分析
- 可视化的排序五:插入排序、二分插入排序和希尔排序
- 希尔排序 Java
- python实现希尔排序(已编程实现)
- 插入排序之希尔排序
- 算法(第四版)学习笔记之java实现希尔排序
- C++模板实现希尔排序
- 重温几种排序算法之希尔排序、归并排序、快速排序
- 排序算法之希尔排序
- 算法---希尔排序