【发布时间】:2016-12-22 08:31:31
【问题描述】:
你们能解释/模拟选择排序算法吗,我往往会在值的交换部分迷失方向。谢谢!
代码如下:
int[] ars = new int[4] { 5, 3, 10, 6 };
int min, tempo;
for (int i = 0; i < ars.Length -1; i++)
{
min = i;
for(int ii = i + 1; ii < ars.Length; ii++)
if (ars[ii] < ars[min])
{
min = ii;
}
tempo = ars[min];
ars[min] = ars[i];
ars[i] = tempo;
}
【问题讨论】:
-
把每一步写在纸上,看看会发生什么
-
关于选择排序的维基百科页面对这个算法有很好的可视化en.wikipedia.org/wiki/Selection_sort可能对你有帮助。
-
你也可以看看这个:youtube.com/watch?v=kPRA0W1kECg
-
@Aidin 不,
if块被计为一个语句。所以不需要额外的括号。 -
@Aidin 我宁愿给
if块一个额外的缩进。这样会更清楚。