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)。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Java中如何使用?byte?數(shù)組作為?Map?的?key
本文將討論在使用HashMap時,當byte數(shù)組作為key時所遇到的問題及其解決方案,介紹使用String和List這兩種數(shù)據(jù)結構作為臨時解決方案的方法,感興趣的朋友跟隨小編一起看看吧2023-06-06Java程序連接數(shù)據(jù)庫的常用的類和接口介紹
這篇文章主要介紹了Java程序連接數(shù)據(jù)庫的常用的類和接口,包括Connection類和Statement類等,需要的朋友可以參考下2015-10-10Eclipse添加xml文件提示及Hibernate配置學習
文件提示功能在開發(fā)過程中很實用的,本文實現(xiàn)了一個Eclipse添加xml文件提示,感興趣的朋友可以了解下啊,希望本文對你有所幫助2013-01-01