Java-選擇排序演算法

來源:互聯網
上載者:User

標籤:size   string   system   pac   描述   索引   class   自己   演算法   

我一定要掌握一些基本的排序演算法,對,沒錯,說到做到,今天學習了選擇排序演算法。

 

一、演算法描述

首先找到數組中的最小的那個元素,把它和數組的第一個元素位置交換(如果第一個元素是最小元素那麼它就和自己交換)。在剩下的元素中找到最小的元素,將它和第二個元素交換位置,如此重複,正道將整個元素排序完成,這種叫做選擇排序,就是不斷地徐澤剩下元素中的最小者。

 

舉個栗子:

原數組:5, 2 , 9 , 6 , 3(第一趟選擇最小數進行交換)

第一趟:2, 5 , 9 , 6 , 3

第二趟:2, 3 , 9 , 6 , 5

第三趟:2, 3 , 5 , 6 , 9

第四趟:2, 3 , 5 , 6 , 9

 

 

二、演算法複雜度分析

平均時間複雜度:O(n^2)

空間複雜度:O(1)(用於交換和記錄索引)

穩定性:不穩定(如[5 , 5 , 3]第一趟將5和3交換,倒置第一個5挪到第二個5後面)

 

 

三、演算法實現(NO BB Show Your Code)

 

 1 package cn.zpoor.Test; 2 /** 3  * @author 薛定諤的貓 4  * 選擇排序實現*/ 5 public class Selection { 6     public static void main(String[] args) { 7         int[] arr = {5,2,9,6,3}; 8         System.out.println("選擇排序之前:"); 9         for(int num:arr) {10             System.out.print(num+ " ");11         }12         13         //選擇排序的最佳化14         for(int i = 0;i<arr.length-1;i++) {15             int k = i;//記錄值16             for(int j = k+1;j<arr.length;j++) {//選最小的索引值17                 if (arr[j]<arr[k]) {18                     k = j;//記錄找到的最小值的索引值19                 }20             }21             //內層迴圈結束後,找到本輪最小的數之後,進行交換22             if (i!=k) {23                 //交換位置24                 int temp = arr[i];25                 arr[i] = arr[k];26                 arr[k] = temp;27             }28         }29         System.out.println();30         System.out.println("選擇排序之後:");31         for(int num:arr) {32             System.out.print(num + " ");33         }34     }35 }36 /*37 選擇排序之前:38 5 2 9 6 3 39 選擇排序之後:40 2 3 5 6 9 */

 

睡覺。

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.