亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

排序算法(Java)

2019-11-06 06:24:41
字體:
來源:轉載
供稿:網友

選擇排序

基本思想:從a[i]右邊找到最小的數,與a[i]交換

void sort(Comparable[] a){ int n = a.length; for(int i=0; i<a.length; i++){ int min = i; for(int j=i+1; j<a.length; j++){ if(less(a[j],a[min])) min = j; } exch(a,i,j); }}

冒泡排序

基本思想:在要排序的一組數中,對當前還未排好序的范圍內的全部數,自上而下對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即:每當兩相鄰的數比較后發現它們的排序與排序要求相反時,就將它們互換。

void sort(Comparable[] a){ int n = a.length; for(int i=n-1; i>0; i--){ for(int j=n-1; j>0; j--){ if(less(a[j],a[j-1])) exch(a,j,j-1); } } }

插入排序

基本思想:將一個記錄插入到已排序好的有序表中,從而得到一個新,記錄數增1的有序表

void sort(Comparable[] a){ int n = a.length; for(int i=0; i<a.length; i++){ for(int j=i+1; j>0&&less(a[j],[j-1]); j--){ exch(a,j,j-1); } }}

希爾排序

基本思想:先將整個待排序的記錄序列分割成為若干子序列分別進行直接插入排序,待整個序列中的記錄“基本有序”時,再對全體記錄進行依次直接插入排序。又叫縮小增量排序。

void sort(Comparable[] a){ int n = a.length; int h = 1;//增量 while(h<n/3) h = 3*h+1;//1,4,13,... while(h>=1){ for(int i=h; i<a.length; i++){ for(int j=i+h; j>h&&less(a[j],[j-h]); j-=h){ exch(a,j,j-h); } } h = h/3; } }

快速排序

基本思想:一種分治的排序算法,將一個數組分成兩個子數組,將兩部分獨立排序

1)選擇一個基準元素,通常選擇第一個元素或者最后一個元素, 2)通過一趟排序講待排序的記錄分割成獨立的兩部分,其中一部分記錄 的元素值均比基準元素值小。另一部分記錄的 元素值比基準值大。 3)此時基準元素在其排好序后的正確位置 4)然后分別對這兩部分記錄用同樣的方法繼續進行排序,直到整個序列有序。

//快速排序public static void sort(Comparable[] a){ int n = a.length; sort(a, 0, n-1); }PRivate static void sort(Comparable[] a, int lo, int hi){ if(lo>=hi) return; int j = partition(a, lo, hi); sort(a, lo, j-1); sort(a, j+1, hi); }private static int partition(Comparable[] a, int lo, int hi){ int i = lo, j = hi+1; Comparable v = a[lo]; while(true){ while(less(a[++i], v)) if(i==hi) break; while(less(v, a[--j])) if(j==lo) break; if(i>=j) break; exch(a,i,j); } exch(a,lo,j); return j; }//重復元素較多時,三向切分的快速排序public static void sort(Comparable[] a){ int n = a.length; sort(a, 0, n-1); }private static void sort(Comparable[] a, int lo, int hi){ if(lo>=hi) return; int lt = lo, i = lo+1; gt = hi; Comparable v = a[lo]; while(i<=gt){ int cmp = a[i].comparaTo(v); if(cmp<0) exch(a, lt++; i++); else(cmp>0) exch(a, i, gt--); else i++; } sort(a, lo, lt-1); sort(a, gt+1, hi); }

歸并排序

基本思想:歸并(Merge)排序法是將兩個(或兩個以上)有序表合并成一個新的有序表

//自頂向下的歸并排序public static void sort(Comparable[] a) { aux = new Comparable[a.length]; sort(a, 0, a.length-1); }private static void sort(Comparable[] a, int lo, int hi){ if(hi<=lo) return; int mid = (lo+hi)/2; sort(a, lo, mid); sort(a, mid+1, hi); merge(a,lo,mid,hi); }public static void merge(Comparable[] a, int lo, int mid, int hi) { int i = lo, j = mid + 1; for (int k = lo; k <= hi; k++) aux[k] = a[k]; //復制 for (int k = lo; k <= hi; k++) { //歸并 if (i > mid) a[k] = aux[j++]; else if (j > hi) a[k] = aux[i++]; else if (less(aux[j], aux[i])) a[k] = aux[j++]; else a[k] = aux[i++]; } }//自底向上的歸并排序public static void sort(Comparable[] a) { int n = a.length; aux = new Comparable[n]; for( int sz=1; sz<n; sz=sz+sz){ for(int lo=0; lo<n-sz; lo+=sz+sz){ merge(a, lo, lo+sz-1, Math.min(lo+sz+sz-1, n-1)); } } }public static void merge(Comparable[] a, int lo, int mid, int hi) { int i = lo, j = mid + 1; for (int k = lo; k <= hi; k++) aux[k] = a[k]; //復制 for (int k = lo; k <= hi; k++) { //歸并 if (i > mid) a[k] = aux[j++]; else if (j > hi) a[k] = aux[i++]; else if (less(aux[j], aux[i])) a[k] = aux[j++]; else a[k] = aux[i++]; } }

堆排序

基本思想堆的定義如下:具有n個元素的序列(k1,k2,…,kn),當且僅當滿足 這里寫圖片描述

時稱之為堆。由堆的定義可以看出,堆頂元素(即第一個元素)必為最小項(小頂堆)。 若以一維數組存儲一個堆,則堆對應一棵完全二叉樹,且所有非葉結點的值均不大于(或不小于)其子女的值,根結點(堆頂元素)的值是最小(或最大)的。

public static void sort(Comparable[] a){ int n = a.length; for(int k=n/2; k>=1; k--) sink(a,k,n); while(n>1){ exch(a,1,--n); sink(a,1,n); } } private static void sink(Comparable[] a, int k, int n){ while(2*k<=n-2){ int j = 2*k; if(j<n && less(a[j], a[j+1])) j++; if(!less(a[k],a[j])) break; exch(a,k,j); k = j; } }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久九九免费视频| 欧美午夜久久久| 中文字幕日韩在线观看| 成人国产精品av| 97国产在线视频| 97在线观看免费高清| 欧美日本啪啪无遮挡网站| 国产欧美最新羞羞视频在线观看| 精品福利樱桃av导航| 91久久久久久久久| 久久999免费视频| 97成人精品区在线播放| 日本最新高清不卡中文字幕| 一区二区三区视频观看| 成人性教育视频在线观看| 一本色道久久综合亚洲精品小说| 久久久久久成人精品| 欧美精品videossex88| 欧美成人亚洲成人| 欧美日韩国产一区在线| 国产精品成人av在线| 欧美精品在线观看| 亚洲国产欧美在线成人app| 狠狠综合久久av一区二区小说| 国产成人激情视频| 久热精品视频在线| 免费av一区二区| 亚洲人精品午夜在线观看| 欧美日韩在线视频观看| 久久久久久国产精品美女| 激情亚洲一区二区三区四区| 精品久久久久久久久久| 伊人久久久久久久久久久| 日产精品久久久一区二区福利| 国产精品日韩在线一区| 国产成人精品久久二区二区91| 国内外成人免费激情在线视频网站| 欧美日韩亚洲一区二区三区| 久久成人这里只有精品| 亚洲国产天堂久久综合| 国产精品专区h在线观看| 91影院在线免费观看视频| 国产精品观看在线亚洲人成网| 欧美风情在线观看| 国产一区二区日韩| 国产精品美女久久久久久免费| 亚洲欧洲一区二区三区久久| 亚洲欧洲视频在线| 国产精品久久久久久久9999| 98视频在线噜噜噜国产| 黄色一区二区在线观看| 国自在线精品视频| 亚洲精品www久久久久久广东| 91久久精品美女高潮| 欧美壮男野外gaytube| 欧美日韩亚洲系列| 国内精品久久久久伊人av| 欧美午夜丰满在线18影院| 欧美激情亚洲一区| 亚洲欧美视频在线| 91精品国产乱码久久久久久蜜臀| 亚洲天堂色网站| 中文字幕亚洲自拍| 97人人做人人爱| 亚洲美女av电影| 欧美日韩免费网站| 尤物九九久久国产精品的分类| 日韩精品中文字幕在线观看| 在线视频日韩精品| 国产午夜精品全部视频播放| 91精品久久久久久久久不口人| 欧美有码在线观看视频| 国产成+人+综合+亚洲欧美丁香花| 亚洲精选中文字幕| 欧美日韩成人精品| 成人网中文字幕| 亚洲乱码国产乱码精品精天堂| 91九色在线视频| 亚洲欧美精品一区二区| www国产亚洲精品久久网站| 中文国产亚洲喷潮| 欧美在线视频在线播放完整版免费观看| 日韩国产激情在线| 欧美国产精品日韩| 九色精品美女在线| 成人av.网址在线网站| 国产丝袜一区二区三区免费视频| 日韩精品免费一线在线观看| 一个人www欧美| 亚洲一区二区三区xxx视频| 久久久女人电视剧免费播放下载| 国产亚洲美女久久| 久久久日本电影| 欧美xxxx18国产| 亚洲欧洲激情在线| 国产69精品久久久久9| 国产在线观看一区二区三区| 欧美裸体男粗大视频在线观看| 欧美成人激情在线| 91午夜理伦私人影院| 九色精品免费永久在线| 亚洲性av网站| 日韩中文av在线| 亚洲男人的天堂在线播放| 最近2019中文字幕第三页视频| 欧美一区二区三区图| 91精品国产高清久久久久久| 欧美黑人xxxⅹ高潮交| 久久免费观看视频| 国产在线拍偷自揄拍精品| 亚洲激情视频网| 亚洲人精选亚洲人成在线| 日韩在线小视频| 欧美高清不卡在线| 亚洲精品一区av在线播放| 欧美精品在线免费观看| 成人av电影天堂| 国产精品美女主播在线观看纯欲| 国产精品亚洲欧美导航| 97av在线视频| 欧美午夜视频在线观看| 欧美肥婆姓交大片| 国产亚洲人成a一在线v站| 成人黄色av网站| 欧美大全免费观看电视剧大泉洋| 欧美乱人伦中文字幕在线| 欧美综合国产精品久久丁香| 国产精品精品国产| 亚洲一区二区三区在线免费观看| 尤物yw午夜国产精品视频| 国产精品久久久久久久久免费| 最近免费中文字幕视频2019| 亚洲精品一区中文字幕乱码| 久久久久久久久久久免费精品| 国产精品99久久久久久久久久久久| 国产亚洲人成网站在线观看| 国产精品一区二区三区久久| 粉嫩av一区二区三区免费野| 国产精品盗摄久久久| 久久精品免费播放| 国产欧美日韩综合精品| 欧美性猛交xxx| 国产精品免费一区豆花| 7m第一福利500精品视频| 国产精品wwww| 欧美高清在线观看| 38少妇精品导航| 九九精品在线播放| 亚洲天天在线日亚洲洲精| 欧美高跟鞋交xxxxxhd| 日韩成人中文电影| 亚洲精品一区中文字幕乱码| 国产精品爽黄69| 国产亚洲视频中文字幕视频| 成人h视频在线观看播放| 亚洲第一网站免费视频| 久久国产精品免费视频| 国产精品高潮呻吟久久av野狼| 欧美成人合集magnet| 亚洲国产精品久久久久秋霞不卡| 亚洲国产精久久久久久| 亚洲精品色婷婷福利天堂| 国产91色在线免费| 性欧美长视频免费观看不卡|