Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:選擇排序 Selection Sort
更新時(shí)間:2015年06月20日 11:20:33 投稿:junjie
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:選擇排序 Selection Sort,本文直接給出實(shí)現(xiàn)代碼,代碼中包含詳細(xì)注釋,需要的朋友可以參考下
/**
* 選擇排序的思想:
* 每次從待排序列中找到最小的元素,
* 然后將其放到待排的序列的最左邊,直到所有元素有序
*
* 選擇排序改進(jìn)了冒泡排序,將交換次數(shù)從O(N^2)減少到O(N)
* 不過比較次數(shù)還是O(N)
*/
package al;
public class SelectSort {
public static void main(String[] args) {
SelectSort selectSort = new SelectSort();
int[] elements = { 14, 77, 21, 9, 10, 50, 43, 14 };
// sort the array
selectSort.sort(elements);
// print the sorted array
for (int i = 0; i < elements.length; i++) {
System.out.print(elements[i]);
System.out.print(" ");
}
}
/**
* @author
* @param array 待排數(shù)組
*/
public void sort(int[] array) {
// min to save the minimum element for each round
int min, tmp;
for(int i=0; i<array.length; i++) {
min = i;
// search for the minimum element
for(int j=i; j<array.length; j++) {
if(array[j] < array[min]) {
min = j;
}
}
// swap minimum element
tmp = array[i];
array[i] = array[min];
array[min] = tmp;
}
}
}
您可能感興趣的文章:
- java排序算法之_選擇排序(實(shí)例講解)
- java數(shù)據(jù)結(jié)構(gòu)排序算法之樹形選擇排序詳解
- Java 選擇排序、插入排序、希爾算法實(shí)例詳解
- java數(shù)據(jù)結(jié)構(gòu)與算法之簡單選擇排序詳解
- Java實(shí)現(xiàn)的各種排序算法(插入排序、選擇排序算法、冒泡排序算法)
- Java實(shí)現(xiàn)選擇排序算法的實(shí)例教程
- Java經(jīng)典算法匯總之選擇排序(SelectionSort)
- Java對數(shù)組實(shí)現(xiàn)選擇排序算法的實(shí)例詳解
- Java排序算法總結(jié)之選擇排序
- java實(shí)現(xiàn)選擇排序算法
- JAVA簡單選擇排序算法原理及實(shí)現(xiàn)
- java 合并排序算法、冒泡排序算法、選擇排序算法、插入排序算法、快速排序算法的描述
- Java排序算法之選擇排序
相關(guān)文章
詳解Spring Security的formLogin登錄認(rèn)證模式
對于一個(gè)完整的應(yīng)用系統(tǒng),與登錄驗(yàn)證相關(guān)的頁面都是高度定制化的,非常美觀而且提供多種登錄方式。這就需要Spring Security支持我們自己定制登錄頁面,也就是本文給大家介紹的formLogin模式登錄認(rèn)證模式,感興趣的朋友跟隨小編一起看看吧2019-11-11
詳解如何在Spring Boot啟動后執(zhí)行指定代碼
這篇文章主要介紹了在Spring Boot啟動后執(zhí)行指定代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06
ActiveMQ消息隊(duì)列技術(shù)融合Spring過程解析
這篇文章主要介紹了ActiveMQ消息隊(duì)列技術(shù)融合Spring過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
java實(shí)體對象與Map之間的轉(zhuǎn)換工具類代碼實(shí)例
這篇文章主要介紹了java實(shí)體對象與Map之間的轉(zhuǎn)換工具類代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
spring中通過ApplicationContext getBean獲取注入對象的方法實(shí)例
今天小編就為大家分享一篇關(guān)于spring中通過ApplicationContext getBean獲取注入對象的方法實(shí)例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03
JAVA微信掃碼支付模式二線上支付功能實(shí)現(xiàn)以及回調(diào)
本篇文章主要介紹了JAVA微信掃碼支付模式二線上支付功能實(shí)現(xiàn)以及回調(diào),這里整理了詳細(xì)的代碼,有需要的小伙伴可以參考下。2016-11-11
SpringBoot整合Flink CDC實(shí)現(xiàn)實(shí)時(shí)追蹤mysql數(shù)據(jù)變動
我們將整合Spring Boot和Apache Flink CDC(Change Data Capture)來實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)追蹤,下面是一個(gè)基本的實(shí)踐流程代碼,包括搭建Spring Boot項(xiàng)目、整合Flink CDC以及實(shí)現(xiàn)數(shù)據(jù)變動的實(shí)時(shí)追蹤,需要的朋友可以參考下2024-07-07
Java關(guān)于BeabUtils.copyproperties的用法
這篇文章主要介紹了Java關(guān)于BeabUtils.copyproperties的用法,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08

