- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
有没有更好的方法使用 C# 进行 shell 排序?
// array of integers to hold values
private int[] a = new int[100];
// number of elements in array
private int count;
// Shell Sort Algorithm
public void sortArray()
{
int i, j, increment, temp;
increment = 3;
while( increment > 0 )
{
for( i=0; i < count; i++ )
{
j = i;
temp = a[i];
while( (j >= increment) && (a[j-increment] > temp) )
{
a[j] = a[j - increment];
j = j - increment;
}
a[j] = temp;
}
if( increment/2 != 0 )
{
increment = increment/2;
}
else if( increment == 1 )
{
increment = 0;
}
else
{
increment = 1;
}
}
}
顺便说一句,我想知道因为我有一些不同语言的“优雅”排序的不同示例(例如 C# 和 F# 中的冒泡排序),我正在比较它们。在现实生活中,大部分时间我可能会在 C# 中使用以下内容:
Array.Sort( object[] )
我不在乎这些是不是“学术”和非实用模式。如果你愿意,你可以把我改成遗忘 :)
KA
最佳答案
您可以轻松进行的改进:
ShellSort
而不是 shellSort
count
而不是 x
使用条件运算符,例如
// This replaces your last 12 lines
int halfIncrement = increment / 2;
increment = halfIncrement != 0 ? halfIncrement : 1 - increment;
使代码通用 - 为什么要限制自己使用整数?
IList<T>
IComparer<T>
使排序顺序任意,提供使用默认值的重载。这实际上与排序相关的很少 - 我尚未验证您的代码是否实际上是合法的 shell 排序...
关于c# - C# 中最优雅的 shell 排序方式(梳状/递减增量排序)是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1596346/
我发布了我的第一个网站 ( www.dirkwolthuis.nl)。这是一个包含大量图像和元素的单页网站。在我的 mac 上的 chrome 中,它加载正常并且可以滚动。在 iPad 或 iPhon
我想要一个四分之一圆形的容器,想想整个披萨的四分之一。 我如何实现这一目标?基本上我想将它放在右下角位置的另一个容器顶部,圆形部分朝内,角度当然匹配右下角形成底部容器的位置,使用堆栈小部件。 谢谢。
我刚刚发现了“blockly”,这正是我一直在寻找的将我的 webApp 提升到一个新水平的方法。我遇到的问题是我不太明白如何启动 python 或 js 代码变量。 这是我的 block : Blo
之前回答的问题似乎没有回答我的问题 "Blocky" Perlin noise 我尽量简化以使我的代码易于阅读和理解。 我不使用置换表,而是使用 mt19937 生成器。 我使用 SFML using
我正在使用 blockly 开发代码编辑器,我的页面目前有用于在 block View 和代码 View 之间切换的选项卡,有点像一些所见即所得的编辑器。现在,Blockly 已经有了很多从 bloc
我无法渲染 2d block 状 map 。 这是二维 map 数组的创建方式: map = new Block[w * h]; block 类包含 2 个变量 - 大小(H:100px、W:100p
据我所知,我已经正确嵌入了 @font-face 字体(我已经检查并仔细检查),但我在 IE8 上出现了以前从未经历过的奇怪行为。 在 IE8 上,字体会一闪而过,呈现完美,然后又变得非常 block
我是一名优秀的程序员,十分优秀!