I學霸官方免費教程二十八:Java排序演算法之選擇排序和冒泡排序

來源:互聯網
上載者:User

標籤:java演算法   排序演算法   冒泡排序   選擇排序   java免費教程   java入門教程   

選擇排序

步驟一、選取一組資料中起始位置(下標)上的資料,和其後的各個位置(下標)上資料進行比較;如果起始位置(下標)上的資料大(升序)或小(降序),就將兩個位置上的資料進行交換;這樣完成一輪比較之後,起始位置上的資料就是最小或最大了
步驟二、再次選取第二個位置上的資料,和其後各個位置上的資料進行比較。如此重複,就可將資料進行排序了。

執行個體:package algorithm.sort;/** * 示範選擇排序演算法 * @author 學霸聯盟 - 趙燦 */public class SelectionSortDemo {public static void main(String[] args) {//建立兩個數組int[] arr1 = { 3, 5, 1, 4, 2 };/* * 選擇排序 * 顧名思義,從數組中按照順序一個一個的選出來 * 升序排序: * 第一步取出數組中下標為0的值,和後面每個值比較 * 如果小標為0值大於後面的值,則互換兩個值,繼續和後面的比 * 比完之後就可以保證下標為0的位置保持最小的值了 * 在取下標為1的值和後面的值一個一個比較,以此類推 */for (int i = 0; i < arr1.length - 1; i++) {//取到倒數第二個值即可,最後一個後面沒有其他值了,也就無需比較了/* * 內層迴圈拿後面的每一個值和外層迴圈取到的值比較 * 所以外層迴圈取下標為0處的值,這裡第一次應該拿下標為1位置的值 * 外層迴圈取下標為1處的值,這裡第一次應該拿下標為2位置的值 * 以此類推,得到j初始化時應該等於i+1 */for (int j = i+1; j < arr1.length; j++) {//判斷大小if(arr1[i] > arr1[j]){//注意:這裡交換的是數組中的值int temp = arr1[i];arr1[i] = arr1[j];arr1[j] = temp;}}}System.out.println("--- 選擇排序法排序後 ---");for (int i = 0; i < arr1.length; i++) {System.out.print(arr1[i] + "  ");}}}運行結果:--- 選擇排序法排序後 ---1  2  3  4  5


冒泡排序

步驟一:選取一組資料中起始位置(下標)上的資料,和第二個位置上的資料進行比較,如果起始位置(下標)上的資料大(升序)或小(降序),就將兩個位置上的資料進行交換;然後使用第二個位置上的資料,和第三個位置上的資料進行比較;第三個和第四個...直至最後一個,這樣完成一輪比較,就使最後一個位置上的資料最大或最小
步驟二:仍然是選取起始位置上的資料,和第二個位置上的資料進行比較,直至倒數第二個資料;
以此類推,直至只剩下第一個和第二個資料進行比較,比較完成後結束。

執行個體:package algorithm.sort;/** * 示範冒泡排序演算法 * @author 學霸聯盟 - 趙燦 */public class BubbleSortDemo {public static void main(String[] args) {//建立兩個數組int[] arr1 = { 3, 5, 1, 4, 2 };/* * 冒泡排序 * 顧名思義,像冒泡一樣,越往上越大 * 升序排序: * 第一步取出數組中下標為0的值,和後面相鄰的值比較 * 如果後面的值小,交換兩個值(相當於向上冒一個位置) * 交換後繼續用這個大的值和後面的值進行比較 * 以此類推,第一遍比較完成後,最大的值就在最後一個下標位置了 */for (int i = arr1.length - 1; i > 0 ; i--) {//外層迴圈的作用是標識冒泡的結束位置,結束位置是依次向前移動的/* * 每次都從第一個值開始往上冒泡 * 知道冒至外層迴圈標識的結束位置為止 */for (int j = 0; j < arr1.length - 1; j++) {//判斷相鄰兩個值大小if(arr1[j] > arr1[j + 1]){//注意:這裡交換的是數組中的值int temp = arr1[j];arr1[j] = arr1[j + 1];arr1[j + 1] = temp;}}}System.out.println("--- 冒泡排序法排序後 ---");for (int i = 0; i < arr1.length; i++) {System.out.print(arr1[i] + "  ");}}}運行結果:--- 冒泡排序法排序後 ---1  2  3  4  5

排序演算法有很多很多,對於初學者,至少至少也要理解和熟練應用其中一種。












本文出自 “學霸聯盟教育官方部落格” 部落格,轉載請與作者聯絡!

I學霸官方免費教程二十八:Java排序演算法之選擇排序和冒泡排序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.