Java排序算法之選擇排序代碼實例
Java排序算法之選擇排序代碼實例
排序原理:從數(shù)組的第一個元素開始,每次遍歷數(shù)組找出一個最小值放在最左側(cè),第二次從第二個元素開始,依次類推,直到起始元素為數(shù)組的倒數(shù)第二個元素時,直接和最后一個元素比較,較小值放左邊,完成排序
時間復雜度:O(N^2) 空間復雜度: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)中最新元素的下標,初始值為當次循環(huán)的第一個元素
int minIndex =i;
for (int j = i+1; j < arr.length; j++) {
//如果有元素的值比下標為minIndex的值還小,將這個元素的下標賦值給minIndex
if(arr[j]<arr[minIndex]){
minIndex=j;
}
}
//如果minIndex被修改過,不再是初始值,交換初始值和minIndex為下標的值
if(minIndex!=i){
int tmp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex]= tmp;
}
}
}
到此這篇關于Java排序算法之選擇排序代碼實例的文章就介紹到這了,更多相關Java選擇排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MyBatis利用攔截器實現(xiàn)數(shù)據(jù)脫敏詳解
現(xiàn)代網(wǎng)絡環(huán)境中,敏感數(shù)據(jù)的處理是至關重要的,敏感數(shù)據(jù)包括個人身份信息、銀行賬號、手機號碼等,所以本文主要為大家詳細介紹了MyBatis如何利用攔截器實現(xiàn)數(shù)據(jù)脫敏,希望對大家有所幫助2023-11-11
Java安全 ysoserial CommonsCollections3示例分析
這篇文章主要為大家介紹了Java安全 ysoserial CommonsCollections3示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10
SpringData JPA快速上手之關聯(lián)查詢及JPQL語句書寫詳解
JPA都有SpringBoot的官方直接提供的starter,而Mybatis沒有,直到SpringBoot 3才開始加入到官方模版中,這篇文章主要介紹了SpringData JPA快速上手,關聯(lián)查詢,JPQL語句書寫的相關知識,感興趣的朋友一起看看吧2023-09-09
SpringBoot監(jiān)聽Redis Key過期事件的幾種方式
本文介紹了使用Redis監(jiān)聽鍵過期來實現(xiàn)電商平臺優(yōu)惠券自動失效的解決方案,包括配置Redis、實現(xiàn)監(jiān)聽器、使用線程池優(yōu)化以及進一步優(yōu)化措施,需要的朋友可以參考下2026-03-03
解決Java Redis刪除HashMap中的key踩到的坑
這篇文章主要介紹了解決Java Redis刪除HashMap中的key踩到的坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02

