Java排序算法之選擇排序代碼實例
Java排序算法之選擇排序代碼實例
排序原理:從數(shù)組的第一個元素開始,每次遍歷數(shù)組找出一個最小值放在最左側(cè),第二次從第二個元素開始,依次類推,直到起始元素為數(shù)組的倒數(shù)第二個元素時,直接和最后一個元素比較,較小值放左邊,完成排序
時間復(fù)雜度:O(N^2) 空間復(fù)雜度:O(1)
代碼實現(xiàn)(java):
public static void main(String[] args) { int[] arr = {3,5,1,2,4,8,4}; selectSort(arr); for (int i : arr) { System.out.println(i); } } public static void selectSort(int[] arr){ //外層循環(huán)表示循環(huán)次數(shù),一共需要長度-1次 for (int i = 0; i < arr.length - 1; i++) { //定義一個變量表示本次循環(huán)中最新元素的下標(biāo),初始值為當(dāng)次循環(huán)的第一個元素 int minIndex =i; for (int j = i+1; j < arr.length; j++) { //如果有元素的值比下標(biāo)為minIndex的值還小,將這個元素的下標(biāo)賦值給minIndex if(arr[j]<arr[minIndex]){ minIndex=j; } } //如果minIndex被修改過,不再是初始值,交換初始值和minIndex為下標(biāo)的值 if(minIndex!=i){ int tmp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex]= tmp; } } }
到此這篇關(guān)于Java排序算法之選擇排序代碼實例的文章就介紹到這了,更多相關(guān)Java選擇排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java并發(fā)編程數(shù)據(jù)庫與緩存數(shù)據(jù)一致性方案解析
這篇文章主要為大家介紹了Java并發(fā)編程中數(shù)據(jù)庫與緩存數(shù)據(jù)一致性解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪2022-04-04SpringBoot3+graalvm:整合并打包為可執(zhí)行文件方式
本文介紹了如何在Spring Boot 3中整合GraalVM,并將其打包為可執(zhí)行文件,適用于Windows和Linux系統(tǒng),通過安裝GraalVM、配置環(huán)境變量、下載Visual Studio組件(僅限Windows)以及使用Maven容器(適用于Linux),可以實現(xiàn)高效的打包和運行2024-12-12Java如何處理數(shù)據(jù)成為樹狀結(jié)構(gòu)
這篇文章主要介紹了Java如何處理數(shù)據(jù)成為樹狀結(jié)構(gòu)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07Executor攔截器高級教程QueryInterceptor的規(guī)范
今天小編就為大家分享一篇關(guān)于Executor攔截器高級教程QueryInterceptor的規(guī)范,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12