常见排序算法:shell排序
2010-03-25 10:53
127 查看
shell排序是对插入排序的一个改装,它每次排序把序列的元素按照某个增量分成几个子序列,对这几个子序列进行插入排序,然后不断的缩小增量扩大每个子序列的元素数量,直到增量为一的时候子序列就和原先的待排列序列一样了,此时只需要做少量的比较和移动就可以完成对序列的排序了。
1 /// <summary>
2 /// default to sort assending
3 /// execute the shell sorting;
4 /// </summary>
5 /// <param name="array"></param>
6 public static void SortByAssending(int[] array)
7 {
8 // check argument;
9
int tmp = 0;
int j = 0;
int i = 0;
for( int increment = array.Length/2;increment >0; increment/=2)
{
for(i = increment ; i< array.Length; i++)
{
tmp = array[i];
for(j = i;j>=increment;j-=increment)
{
if(array[j-increment] > tmp)
{
array[j] = array[j-increment];
}
else
{
break;
}
}
array[j] = tmp;
}
}
}
1 /// <summary>
2 /// default to sort assending
3 /// execute the shell sorting;
4 /// </summary>
5 /// <param name="array"></param>
6 public static void SortByAssending(int[] array)
7 {
8 // check argument;
9
int tmp = 0;
int j = 0;
int i = 0;
for( int increment = array.Length/2;increment >0; increment/=2)
{
for(i = increment ; i< array.Length; i++)
{
tmp = array[i];
for(j = i;j>=increment;j-=increment)
{
if(array[j-increment] > tmp)
{
array[j] = array[j-increment];
}
else
{
break;
}
}
array[j] = tmp;
}
}
}
相关文章推荐
- 常见的六种排序算法实现
- JS 常见排序算法
- Java八种常见排序算法
- Javascript中的常见排序算法
- 8中常见的排序算法
- 常见排序算法
- 总结了一些常见的排序算法,面试必备啊!
- Java中常见的数组排序算法(包括冒泡,选择,插入,快速排序)
- PHP-----数组和常见排序算法
- 数据结构常见的八大排序算法
- javascript常见排序算法总结
- PHP实现常见排序算法
- js实现常见的排序算法
- 基本排序算法(1)—插入排序及其变形shell排序
- 常见排序算法
- Java实现常见的排序算法
- PHP中常见排序算法的实现,php
- 几种常见的排序算法及实现(一)
- 几种常见排序算法的比较与实现
- 常见排序算法(冒泡,选择,快速)的C语言实现【修正版】