选择排序的工作原理是:第一次排序时在数据元素中选出最小(或最大)的一个元素并存放在序列的起始位置;然后再从剩余的元素中选出最小(或最大)的一个元素存放在已经排序的序列的末尾,以此类推,直到完成所有的排序。
排序步骤:
以[13,5,44,1,6]数据元素按照从小到大排序
第一次排序:从[13,5,44,1,6]




第一次排序选出最小元素为1,并排到初始位置
第二次排序:从[13,44,5,6]中选出最小值




第二次排序选出最小元素为5,并排到已排序的尾部(即1的尾部)
第三次排序:从[44,13,6]中选出最小值


第三次排序选出最小元素为6,并排到已排序的尾部(即5的尾部)
第四次排序:从[44,13]中选出最小值

第四次排序选出最小元素为13,并排到已排序的尾部(即6的尾部),排序完成
代码实现
//选择排序
static int[] Print2(int[] arr)
{
int temp;
for (int i = 0; i < arr.Length; i++)
{
for (int j = 1; j < arr.Length-i; j++)
{
if (arr[i] > arr[i + j])
{
temp = arr[i]; //大
arr[i] = arr[i + j];
arr[i+j] = temp;
}
}
}
return arr;
}