本篇文章為大家展示了怎么在java項目中實現一個選擇排序功能,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
一、基本概念
每趟從待排序的記錄中選出關鍵字最小的記錄,順序放在已排序的記錄序列末尾,直到全部排序結束為止。
二、實現思路
從待排序序列中,找到關鍵字最小的元素;
如果最小元素不是待排序序列的第一個元素,將其和第一個元素互換;
從余下的 N - 1 個元素中,找出關鍵字最小的元素,重復(1)、(2)步,直到排序結束。
三、代碼實現
public class SelectionSort { public static void selectionSort(int[] list){ //需要遍歷獲得最小值的次數 if (1>=list.length)return; for (int i=0;i<list.length-1;i++){ int temp=0; int index=i; //選擇當前值為最小值索引 for (int j=i+1;j<list.length;j++){ if (list[index]>list[j]){ index=j; //修改最小值索引 } } temp=list[index]; list[index]=list[i]; list[i]=temp; } } public static void main(String[] args){ int[] list={4,3,6,5,7,8,2,10,2,9}; selectionSort(list); for (int num:list){ System.out.print(num+" "); } } }
四、時間復雜度
簡單選擇排序的比較次數與序列的初始排序無關。 假設待排序的序列有 N 個元素,則比較次數總是N (N - 1) / 2。
而移動次數與序列的初始排序有關。當序列正序時,移動次數最少,為 0.
當序列反序時,移動次數最多,為3N (N - 1) / 2。
所以,綜合以上,簡單排序的時間復雜度為 O(N2)。
上述內容就是怎么在java項目中實現一個選擇排序功能,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。