国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C#選擇排序詳解

2019-11-17 02:57:19
字體:
來源:轉載
供稿:網友

C#選擇排序詳解

選擇排序圖解

選擇排序(Selection sort)是一種簡單直觀的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再從剩余未排序元素中繼續尋找最?。ù螅┰?,然后放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

選擇排序的主要優點與數據移動有關。如果某個元素位于正確的最終位置上,則它不會被移動。選擇排序每次交換一對元素,它們當中至少有一個將被移到其最終位置上,因此對n個元素的表進行排序總共進行至多n-1次交換。在所有的完全依靠交換去移動元素的排序方法中,選擇排序屬于非常好的一種。

C#代碼實現

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;            for (int i = 0; i < arr.Length - 1; i++)            {                int minVal = arr[i]; //假設 i 下標就是最小的數                int minIndex = i;  //記錄我認為最小的數的下標                for (int j = i + 1; j < arr.Length; j++)   //這里只是找出這一趟最小的數值并記錄下它的下標                {                    //說明我們認為的最小值,不是最小                    if (minVal > arr[j])    //這里大于號是升序(大于是找出最小值) 小于是降序(小于是找出最大值)                    {                        minVal = arr[j];  //更新這趟最小(或最大)的值 (上面要拿這個數來跟后面的數繼續做比較)                        minIndex = j;    //記下它的下標                    }                }                //最后把最小的數與第一的位置交換                temp = arr[i];    //把第一個原先認為是最小值的數,臨時保存起來                arr[i] = arr[minIndex];   //把最終我們找到的最小值賦給這一趟的比較的第一個位置                arr[minIndex] = temp;  //把原先保存好臨時數值放回這個數組的空地方,  保證數組的完整性            }            //控制臺輸出            foreach (int item in arr)            {                Console.WriteLine("C#遍歷:{0}", item);            }        }    }}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 独山县| 城固县| 项城市| 青海省| 游戏| 于都县| 六安市| 安西县| 凤翔县| 鸡东县| 淮阳县| 台山市| 延吉市| 银川市| 梓潼县| 海淀区| 额敏县| 景洪市| 尼玛县| 宾阳县| 厦门市| 鹰潭市| 正安县| 乌兰浩特市| 南昌市| 合江县| 台东市| 南靖县| 新闻| 云龙县| 靖西县| 东方市| 渝中区| 嵩明县| 武平县| 慈利县| 高阳县| 大安市| 天峻县| 将乐县| 沭阳县|