数据结构与算法系列文章:数据结构与算法目录
选择排序的思路是这样的:首先,找到数组中最小的元素,拎出来,将它和数组的第一个元素交换位置,第二步,在剩下的元素中继续寻找最小的元素,拎出来,和数组的第二个元素交换位置,如此循环,直到整个数组排序完成。
至于选大还是选小,这个都无所谓,你也可以每次选择最大的拎出来排,也可以每次选择最小的拎出来的排,只要你的排序的手段是这种方式,都叫选择排序。
实现:
/// <summary>
/// 选择排序
/// </summary>
/// <param name="arr"></param>
public void SelectSort(int[] arr)
{
int len = arr.Length;
int minIndex, temp;
for (int i = 0; i < len; i++)
{
minIndex = i;
// 从剩下的元素中,寻找最小的数
for (int j = i + 1; j < len; j++)
{
if (arr[j] < arr[minIndex])
{
// 将最小数索引保存
minIndex = j;
}
}
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
网友评论