算法——選擇排序法

每次最外層循環進來,默認下表爲i的元素爲最小或者最大元素。記錄min = i。然後依次和剩下的元素比較,如果有比它大或者小的元素,記錄下來索引賦值給min。最後當每i輪循環完畢之後,判斷min是否等於i。如果等於則說明i沒有變,就是我們默認的最初的值,如果變了,說明最大值或者最小值發生了變化,則應該交換數據。這裏要交換的是Array[i] 和Array[min]或者Array[max].

public static int[] SelectSort(int[] Array)
        {
            for (int i = 0; i < Array.Length - 1; i++)
            {
                //每次循環進來 默認下表爲i的元素爲最小或者最大元素
                int min = i;
                for (int j = i+1; j < Array.Length; j++)
                {
                    if (Array[min] < Array[j])
                    {
                        min = j;
                    }
                }
                if (min!=i)
                {
                    int temp;
                    //Array[i]是第幾輪默認的最小的數。如果min!=i說明 Array[i]不是最小的數 因此 Array[i]要和Array[min]交換 保證在當前輪Array[i]爲最小
                    temp = Array[i];
                    Array[i] = Array[min];
                    Array[min] = temp;
                }

            }
            return Array;
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章