選擇排序----直接選擇排序----java實現

來源:互聯網
上載者:User

思路:

第一趟比較:程式將記錄定位在數組的第一個位置,拿第一個資料與後面的每個資料對比,

用一個變數mix記錄比第一個數小的資料的索引,通過比較不斷更新mix,最後得到整個數組中最小的元素的索引,將第一個數與第mix個數交換,則最小數位於數組的其實位置了,

第二趟比較:程式將記錄定位在數組的第二個位置,拿第二個資料與後面的每個資料對比,

得到從第二個資料開始,數組中最小的數,並與第二個數交換位置。

一共進行n-1次比較,每次都會在剩下的無序數組中選擇出一個最小的數。

public void selectSort(int[] array)  {  int arrayLength = array.length; for (int i = 0; i < arrayLength-1; i++){ //mix用來儲存數組中最小元素的索引值int mix = i; //選擇當前的數組元素作為最小值,遍曆到最後,找到最小的數組元素的索引,和當前位置交換for (int j = i+1; j < arrayLength; j++){if(array[j] < array[mix]){mix = j;}}//每趟最多交換一次if(mix != i) //如果mix不等於當前的i,讓最小值的和當前位置的值交換{swap(array,mix,i);}}  }  private void swap(int[] array,int mix,int i)  {  int temp = array[mix];  array[mix] = array[i];  array[i] = temp;  }


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.