using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace SelectSortDemo
{
internal class Program
{
//选择排序算法
//基本思想:将指定排序位置与其他数组元素分别对比,如果满足条件就交换元素的值,
//和冒泡排序算法不同,冒泡是交换相邻元素,先择排序是交换满足条件的元素与指定的排序位置交换
//首先从数字中选择最小的放在第一位,然后依次选择,
//与冒泡排序算法相比,选择排序算法交换的次数要少很多。
static void SelectSort(int[] arr)
{
for (int i = 0; i < arr.Length; i++)
{
for (int j = i + 1; j < arr.Length; j++)
{
int temp = 0;
if (arr[i] > arr[j])
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
static void Main(string[] args)
{
int[] arr = new int[] {12,3,5,11,20,23,34,42,100,14,16 };
Console.WriteLine("没有排序之前的数组:");
foreach(int i in arr)
Console.Write(i + " ");
Console.WriteLine();
SelectSort(arr);
Console.WriteLine("排序之后的数组:");
foreach (int i in arr)
Console.Write(i + " ");
Console.WriteLine();
}
}
}
//选择排序算法
//基本思想:将指定排序位置与其他数组元素分别对比,如果满足条件就交换元素的值,
//和冒泡排序算法不同,冒泡是交换相邻元素,先择排序是交换满足条件的元素与指定的排序位置交换
//首先从数字中选择最小的放在第一位,然后依次选择,
//与冒泡排序算法相比,选择排序算法交换的次数要少很多。