国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 庆阳市| 福安市| 韩城市| 张掖市| 仁布县| 紫金县| 彩票| 阿坝县| 滦平县| 铁力市| 临夏市| 洛川县| 三原县| 内丘县| 饶阳县| 中卫市| 宜宾市| 龙游县| 根河市| 呈贡县| 平湖市| 沈丘县| 昌都县| 新余市| 墨江| 丰城市| 铁力市| 衢州市| 宁安市| 繁峙县| 多伦县| 靖州| 长顺县| 老河口市| 永定县| 大方县| 朝阳区| 朝阳区| 白水县| 金塔县| 桑植县|