C#選擇排序原理講解及代碼塊

1.原理講解
選擇排序原理講解

2.代碼塊

        public static void SelectSortMethod(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;    //記下它的下標
                    }
                }
                int index = 0;
                //控制檯輸出
                foreach (int item in arr)
                {
                    Console.Write(item + ",");
                    index++;
                    if (index == arr.Length)
                    {
                        Console.WriteLine($"第{i + 1}次");
                    }
                }
                //最後把最小的數與第一的位置交換
                temp = arr[i];    //把第一個原先認爲是最小值的數,臨時保存起來
                arr[i] = arr[minIndex];   //把最終我們找到的最小值賦給這一趟的比較的第一個位置
                arr[minIndex] = temp;  //把原先保存好臨時數值放回這個數組的空地方,  保證數組的完整性
            }
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章