希尔排序(C#下调试通过)
来源:互联网 发布:java 高并发框架 编辑:程序博客网 时间:2024/06/05 09:26
希尔排序是计算机科学家Donald L.Shell而得名。
希尔排序不像快速排序那么快。因为在最坏和最理想的情况下效率差别不算太多,所以稳定性比快速排序好一些。
间隔增量
Knuth间隔序列。
h=h*3+1递归调用可增至最大间隔数。
h=(h-1)/3可以减至起点。
当然还有别的序列方法:例如:h=(5*h-1)/11;
序列方案可以自己制定,但是更多的专家采用非对称互质的方法。但是这样也带来了一些问题,比如需要循环至起点又很麻烦,
反到影响了效能。
如下代码就有这样的难题,这个问题保留至此,以后碰上更好的方案在改。
- /// <summary>
- /// 希尔排序算法
- /// </summary>
- /// <param name="lngArr" >传入的数组/param>
- public void shellSort(long[] lngArr)
- {
- int intOut = 0;
- int intIn = 0;
- int intElems = lngArr.Length;
- int intFlam = 0;
- while (intFlam <= intElems / 3)
- {
- intFlam = intFlam * 3 + 1;
- }
- while (intFlam > 0)
- {
- for (intOut = intFlam; intOut < intElems; intOut++)
- {
- long temp = lngArr[intOut];
- intIn = intOut;
- while (intIn > intFlam - 1 && lngArr[intIn -intFlam] >= temp)
- {
- lngArr[intIn] = lngArr[intIn -intFlam];
- intIn -= intFlam;
- }
- lngArr[intIn] = temp;
- } // end for
- intFlam = (intFlam - 1) / 3;
- }
- }// end shellSort()
- 希尔排序(C#下调试通过)
- 希尔排序(下)
- C#算法 希尔排序
- C# 希尔排序
- C#算法 希尔排序
- c#希尔排序
- C#希尔排序算法
- C#之希尔排序
- 排序(希尔排序)
- C#算法 -- (三)希尔排序
- C#希尔排序算法实现
- C#算法----(四)希尔排序
- C#算法----(三)希尔排序 (solarsoft原创)
- C#排序算法 之 希尔排序
- 希尔(Shell)排序
- 希尔排序(不稳定)
- 希尔(shell)排序
- 希尔(shell)排序
- 扩展操作码的编程实现
- My English Resume
- 用JavaScript自动生成等比例缩略图
- 清水湾随笔 2008-10-05 香港科大 雨
- Some Feelings about Microsoft Exercitation Chance
- 希尔排序(C#下调试通过)
- 软件welcome窗口代码
- delphi 中关于 The DecisionCube capacity is low. Please deactivate dimensions or change the data set 错误的处理
- Web版tank大战
- 在ORACLE、MSSQL、MYSQL中树结构表递归查询的实现方法
- 一些常用的shell模式
- memcached 基础
- 音乐频谱显示 FFT of waveIn audio signals. Free source code and programming help
- 王小云