时间:2021-05-20
1.工作原理(算法思路)
2.动图演示
3.C#代码实现
根据原理设计算法:
class Program{ //选择排序法 private static void chooseSort(int[] array) { //第一个for循环:每一次循环完成后得到的当前的最大元素都与第i位做交换 for (int i = 0; i < array.Length; i++) { //min为最小元素的索引 int min = i; //第二个for循环:将当前的array[j]与array[min]作比较,如果array[j]更小,则替换min的当前索引 for (int j = i + 1; j < array.Length; j++) { if (array[min] > array[j]) { min = j; } } //当第二个for循环完成时,array[min]中存储的就是当前最小元素 //将array[min]与array[i]交换 int temp = array[i]; array[i] = array[min]; array[min] = temp; } } //打印输出数组 private static void printArray(int[] array) { foreach (int item in array) { Console.Write(item + "\t"); } Console.WriteLine(); } static void Main(string[] args) { int[] array = new int[10] { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; printArray(array); chooseSort(array); printArray(array); Console.ReadKey(); }}输出结果
4.性能分析
1)复杂度
2)选择排序法特点
比较: N*(N-1)/2
交换: N
在每一次的for循环结束后并不能为下一次的循环提供有效信息。这种性质在某些时候是一种缺陷。在数组大小相同时,当一个几乎已经有序的数组使用选择排序法花费的时间和无序数组所花费的时间是一致的。
交换的次数和数组的大小呈线性关系,其他的排序算法对数据移动量都是线性对数级别或平方级别的。
以上就是c#实现选择排序的示例的详细内容,更多关于c# 选择排序的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
导读:本文给出了使用C#实现选择发排序的算法usingSystem;namespaceSelectionSorter{publicclassSelectionS
官方提供了curl、post、php、ruby的实现示例,并没有C#的官方示例。既然提供了post的方式,那么就可以用C#实现,下面是实现代码:ASP.net百
本文实例讲述了C#选择法排序实现方法。分享给大家供大家参考。具体实现方法如下:publicint[]SelectionSort(int[]arr){//1.Fi
作者:Sabine【导读】本文介绍了C#的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序 冒泡排序usingSystem;namespaceBubbleS
本文实例展示了C#实现Datatable排序的方法,分享给大家供大家参考之用。具体方法如下:一般来说,在C#中要对Datatable排序,可使用DefaultV