选择排序
Posted kangpingfei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了选择排序相关的知识,希望对你有一定的参考价值。
选择排序:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 选择排序
{
//选择排序与冒泡排序比较的次数是一样的
//选择排序的交换次数要比冒泡排序的交换次数少
class Program
{
static void Main(string[] args)
{
int[] arr = { 15, 0, 10, 50, 55, 35, 15, 20 }; //待排序数组
SelectSort(arr); //调用选择排序函数
}
private static void SelectSort(int[] arr)
{
int temp = 0;
int min;
for (int i = 0; i < arr.Length - 1; i++)
{
min = i; //记录我认为最小的数的下标
for (int j = i ; j < arr.Length; j++) //这里只是找出这一趟最小的数值并记录下它的下标
{
//说明我们认为的最小值,不是最小
if (arr[j] < arr[min]) //这里大于号是升序(大于是找出最小值) 小于是降序(小于是找出最大值)
{
min= j; //记下它的下标
}
}
//最后把最小的数与第一的位置交换
temp = arr[min]; //把第一个原先认为是最小值的数,临时保存起来
arr[min] = arr[i]; //把最终我们找到的最小值赋给这一趟的比较的第一个位置
arr[i] = temp; //把原先保存好临时数值放回这个数组的空地方, 保证数组的完整性
}
//控制台输出
foreach (int item in arr)
{
Console.WriteLine( item);
}
}
}
}
以上是关于选择排序的主要内容,如果未能解决你的问题,请参考以下文章