<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    對Java中四種基本排序的總結

    Posted on 2007-09-13 11:12 my 閱讀(175) 評論(0)  編輯  收藏 所屬分類: 算法和數據結構
    作者:佚名 文章來源:net 點擊數:471 更新時間:2007-7-25 8:23:52

    JAVA四種基本排序,包括冒泡法,插入法,選擇法,SHELL排序法.其中選擇法是冒泡法的改進,SHELL排序法是 插入法的改進.所以從根本上來說可以歸納為兩種不同的排序方法:即:插入法&冒泡法

    一 插入法:

    遍歷排序集合,每到一個元素時,都要將這個元素與所有它之前的元素遍歷比較一遍,讓符合排序順序的元素挨個移動到當前范圍內它最應該出現的位置。交換是相鄰遍歷移動,雙重循環控制實現.這種排序法屬于地頭蛇類型,在我的地牌上我要把所有的東西按一定的順序規整,過來一個,規整一個.

    處理代碼如下:

    public void sort(int[] data) {
                            int temp;
                            for(int i=1; i〈data.length; i++){
                            for(int j=i; (j〉0)&&(data[j]〉data[j-1]); j--){
                            temp=date[j];
                            data[j]=data[j-1];
                            data[j-1]=temp; }
                            }
                            }

    二冒泡法:

    比較容易,它的內層循環保證遍歷一次后,集合中最小(大)元素出現在它的正確位置,下一次就是次小元素。。。該方法在集合分布的各種情況下交換移動的次數基本不變,屬于最慢的一種排序。實現也是雙重循環控制。這種排序法屬于過江龍,就是要找到極端,但是過獎龍也有大哥,二哥等,所以他們只能是大哥挑了二哥挑.

    處理代碼如下:

    public static int [] maopao(int[] data) {
                            int temp;
                            for(int i=0; i〈data.length-1; i++){
                            for(int j=i+1; j〈data.length; j++){
                            if(data[i]〈data[j]){
                            temp=data[i];
                            data[i]=data[j];
                            data[j]=temp;
                            }
                            }
                            }
                            return data;

    三選擇法:

    該方法只是通過遍歷集合記錄最小(大)元素的位置,一次遍歷完后,再進行交換位置操作,類似冒泡,但在比較過程中,不進行交換操作,只記錄元素位置。一次遍歷只進行一次交換操作。這個對與交換次序比較費時的元素比較適合。這種排序法比冒泡法要城府要深的多,我先記住極端數據,待遍歷數據完了之后,我再處理,不像冒泡法那樣只要比自己極端一點的就要處理,選擇法只處理本身范圍內的最極端數據.

    public static void xuanze(int[] data) {
                            int temp;
                            for (int i = 0; i 〈 data.length; i++) {
                            int lowIndex = i;
                            for (int j = data.length - 1; j 〉 i; j--) {
                            if (data[j] 〉 data[lowIndex]) {
                            lowIndex = j;
                            }
                            }
                            temp=data[i];
                            data[i]=data[lowIndex];
                            data[lowIndex]=temp;
                            }
                            }

    四 Shell排序:

    它是對插入排序的一種改進,是考慮將集合元素按照一定的基數劃分成組去排序,讓每一組在局部范圍內先排成基本有序,最后在進行一次所有元素的插入排序。

    public void sort(int[] data) {
                            for(int i=data.length/2; i〉2; i/=2){
                            for(int j=0; j〈i; j++){
                            insertSort(data,j,i);
                            }
                            }
                            insertSort(data,0,1);
                            }
                            private void insertSort(int[] data, int start, int inc) {
                            int temp;
                            for(int i=start+inc; i〈data.length; i+=inc){
                            for(int j=i; (j〉=inc)&&(data[j]〈data[j-inc]); j-=inc){
                            temp=data[j];
                            data[j]=data[j-inc]
                            data[j-inc]=temp;
                            }
                            }
                            }

    posts - 63, comments - 45, trackbacks - 0, articles - 99

    Copyright © my

    主站蜘蛛池模板: 好先生在线观看免费播放| 久久久久国产免费| 好吊妞在线成人免费| 人与禽交免费网站视频| 亚洲精品国产成人专区| 午夜视频免费在线观看| 久久亚洲AV无码精品色午夜麻豆| 亚洲第一第二第三第四第五第六| 青青操在线免费观看| 亚洲成a人片在线观看日本| 久久久久久久岛国免费播放| 亚洲综合一区二区精品导航 | jlzzjlzz亚洲乱熟在线播放| 亚洲人成777在线播放| jizz日本免费| 亚洲成A人片在线观看无码不卡| 日韩免费高清大片在线| 亚洲一线产区二线产区精华| 永久免费AV无码网站国产| 国产男女猛烈无遮挡免费网站| 男女超爽视频免费播放| 成人啪精品视频免费网站| 亚洲AV日韩AV一区二区三曲| 2048亚洲精品国产| 黄网站免费在线观看| 亚洲中文字幕人成乱码| 国产高清免费在线| 中文在线日本免费永久18近| 亚洲国产精品成人AV无码久久综合影院| 9久久免费国产精品特黄| 亚洲最新永久在线观看| 免费无码黄网站在线观看| 亚洲精品国产肉丝袜久久| 卡1卡2卡3卡4卡5免费视频| 一区二区三区视频免费观看| 国产成人免费a在线视频色戒| 中文字字幕在线高清免费电影| 亚洲国色天香视频| 亚洲Av无码乱码在线znlu| 91精品导航在线网址免费| 亚洲成a∨人片在无码2023|