国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java排序高級之選擇排序?qū)崿F(xiàn)方法

2019-11-26 15:17:48
字體:
供稿:網(wǎng)友

本文實例講述了java排序高級之選擇排序?qū)崿F(xiàn)方法。分享給大家供大家參考。具體如下:

選擇排序(Selection sort)是一種簡單直觀的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再從剩余未排序元素中繼續(xù)尋找最小(大)元素,然后放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。
選擇排序的主要優(yōu)點與數(shù)據(jù)移動有關(guān)。如果某個元素位于正確的最終位置上,則它不會被移動。選擇排序每次交換一對元素,它們當(dāng)中至少有一個將被移到其最終位置上,因此對n個元素的表進(jìn)行排序總共進(jìn)行至多n-1次交換。在所有的完全依靠交換去移動元素的排序方法中,選擇排序?qū)儆诜浅:玫囊环N。

最差時間復(fù)雜度 О(n²)
最優(yōu)時間復(fù)雜度 О(n²)
平均時間復(fù)雜度 О(n²)
最差空間復(fù)雜度 О(n) total, O(1) auxiliary

代碼實現(xiàn):

package com.baobaotao.test; /**  * 排序研究  *  */ public class Sort {      /**    * 選擇排序    * @param array 數(shù)組    */   public static void selectSort(int[] array) {     int length = array.length ;     int index = 0 ;     for(int i=0;i<length-1;i++) {       index = i ;       for(int j=i+1;j<length;j++) {         if(array[j] < array[index]) {           index = j ;         }       }       swap(array, i, index) ;       printArr(array) ;     }   }   /**    * 按從小到大的順序交換數(shù)組    * @param a 傳入的數(shù)組    * @param b 傳入的要交換的數(shù)b    * @param c 傳入的要交換的數(shù)c    */   public static void swap(int[] a, int b, int c) {     if(b == c) return ;     int temp = a[b] ;     a[b] = a[c] ;     a[c] = temp ;    }      /**    * 打印數(shù)組    * @param array    */   public static void printArr(int[] array) {     for(int c : array) {       System.out.print(c + " ");     }     System.out.println();   }      public static void main(String[] args) {     int[] number={11,95,45,15,78,84,51,24,12} ;     selectSort(number) ;   } }

輸出:

11 95 45 15 78 84 51 24 1211 12 45 15 78 84 51 24 9511 12 15 45 78 84 51 24 9511 12 15 24 78 84 51 45 9511 12 15 24 45 84 51 78 9511 12 15 24 45 51 84 78 9511 12 15 24 45 51 78 84 9511 12 15 24 45 51 78 84 95

希望本文所述對大家的java程序設(shè)計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 德保县| 新昌县| 昔阳县| 通榆县| 明水县| 汕头市| 延长县| 武隆县| 托里县| 霍州市| 仙居县| 明光市| 海宁市| 抚远县| 娄烦县| 乐都县| 石首市| 曲沃县| 绍兴县| 贵州省| 墨玉县| 海安县| 广安市| 同仁县| 云龙县| 右玉县| 宽城| 阜平县| 株洲市| 汕头市| 白山市| 清水河县| 富平县| 荔波县| 宜章县| 苏州市| 安吉县| 巴林右旗| 肇州县| 富裕县| 乌拉特中旗|