java簡單選擇排序實例
一、基本概念
每趟從待排序的記錄中選出關鍵字最小的記錄,順序放在已排序的記錄序列末尾,直到全部排序結束為止。
二、實現(xiàn)思路
從待排序序列中,找到關鍵字最小的元素;
如果最小元素不是待排序序列的第一個元素,將其和第一個元素互換;
從余下的 N - 1 個元素中,找出關鍵字最小的元素,重復(1)、(2)步,直到排序結束。
三、代碼實現(xiàn)
public class SelectionSort {
public static void selectionSort(int[] list){
//需要遍歷獲得最小值的次數(shù)
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+" ");
}
}
}
四、時間復雜度
簡單選擇排序的比較次數(shù)與序列的初始排序無關。 假設待排序的序列有 N 個元素,則比較次數(shù)總是N (N - 1) / 2。
而移動次數(shù)與序列的初始排序有關。當序列正序時,移動次數(shù)最少,為 0 。
當序列反序時,移動次數(shù)最多,為3N (N - 1) / 2。
所以,綜合以上,簡單排序的時間復雜度為 O(N2)。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Maven方式構建SpringBoot項目的實現(xiàn)步驟(圖文)
Maven是一個強大的項目管理工具,可以幫助您輕松地構建和管理Spring Boot應用程序,本文主要介紹了Maven方式構建SpringBoot項目的實現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下2023-09-09
Java C++解決在排序數(shù)組中查找數(shù)字出現(xiàn)次數(shù)問題
本文終于介紹了分別通過Java和C++實現(xiàn)統(tǒng)計一個數(shù)字在排序數(shù)組中出現(xiàn)的次數(shù)。文中詳細介紹了實現(xiàn)思路,感興趣的小伙伴可以跟隨小編學習一下2021-12-12
詳解APP微信支付(java后臺_統(tǒng)一下單和回調)
這篇文章主要介紹了APP微信支付(java后臺_統(tǒng)一下單和回調),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-05-05

