青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

那誰的技術博客

感興趣領域:高性能服務器編程,存儲,算法,Linux內核
隨筆 - 210, 文章 - 0, 評論 - 1183, 引用 - 0
數據加載中……

<<算法導論>>一起學之一:我寫的一個Merge算法

       第二章中給出的Merge算法,本質是初始化兩個數組分別保存前后兩個已經排序好了的數組,然后逐個掃描比較兩個數組中的元素把元素放在原來數組的合適的位置上.
       不知道之前有沒有人做過這個算法,比起書上的那個并不見得高明,在最壞的情況下要交換元素(N/2)*(N/2)也就是N的平方數量級(這里N是數組的大小),這個最壞的情況就是前面的數組中的元素都比后面數組的元素大.
       雖然不見得是最好的,不過至少是自己思考的結果,放上來也許對別人有啟發.
      
// 如何證明算法的正確性?
// 我改進的merge算法
void Merge1(int array[], int start, int mid, int end)
{
    
// 思想:設置兩個哨兵,分別指向前后兩個數組,
    
// 逐個把前面的數組的元素和后面數組的元素進行比較
    
// 如果前面的元素不比后面的元素大,那么前面數組的哨兵前移一位
    
// 否則,交換兩個元素,并且對后面的數組進行掃描,確保新的元素放在合適的位置
    
// 當前面的數組掃描完畢之后循環結束
    for (int i = start; i < mid + 1++i)
    
{
        
if (array[i] > array[mid + 1])
        
{
            swap(
&array[i], &array[mid + 1]);

            
// 把新放入后面數組的元素放到合適的位置去
            for (int j = mid +1; j + 1 <= end && array[j] > array[j + 1]; ++j)
            
{
                swap(
&array[j], &array[j + 1]);
            }

        }
       
    }

}


// 書上的算法實現
void Merge(int array[], int start, int mid, int end)
{
    
int temp1[10], temp2[10];
    
int n1, n2;
    n1 
= mid - start + 1;
    n2 
= end - mid;

    
// 拷貝前半部分數組
    for (int i = 0; i < n1; i++)
    
{
        temp1[i] 
= array[start + i];
    }

    
// 拷貝后半部分數組
    for (int i = 0; i < n2; i++)
    
{
        temp2[i] 
= array[mid + i + 1];
    }

    
// 把后面的元素設置的很大
    temp1[n1] = temp2[n2] = 1000;
    
// 逐個掃描兩部分數組然后放到相應的位置去
    for (int k = start, i = 0, j = 0; k <= end; k++)
    
{
        
if (temp1[i] <= temp2[j])
        
{
            array[k] 
= temp1[i];
            i
++;
        }

        
else
        
{
            array[k] 
= temp2[j];
            j
++;
        }

    }

}


void Merge_Sort(int array[], int start, int end)
{
    
if (start < end)
    
{
        
int i;
        i 
= (end + start) / 2;
        Merge_Sort(array, start, i);
        Merge_Sort(array, i 
+ 1, end);

        Merge1(array, start, i, end);
    }

}

 

      對外的接口:Merge_Sort(array, start, end);
即:傳入一個數組,和起始位置中止位置,比如數組array[10],那么就是Merge_Sort(arrry,0,9)

posted on 2006-03-04 22:29 那誰 閱讀(1491) 評論(2)  編輯 收藏 引用 所屬分類: 算法與數據結構

評論

# re: >一起學之一:我寫的一個Merge算法  回復  更多評論   

這個 blog 好,代碼還可以伸縮啊。回頭得給 fan 老大提提意見了。
2006-03-07 15:13 | win_hate

# re: >一起學之一:我寫的一個Merge算法  回復  更多評論   

這個算法不需要輔助數組是一個原地排序。但是用了兩重循環,復雜度為O(N^2),失去了歸并排序的本意。
第二重循環是一個冒泡過程可改成折半插入,減少比較和元素移動。以重循環可先用折半查找尋找前半部
分第一個比array[mid+1]大的,但是這個算法仍然是O(N^2)的。原地的歸并排序如bartcher奇偶歸并排序
復雜度為O(N(logN)^2)可以看Robert Sedgewick的algorithm in c++,里面有實現。
2006-04-21 11:33 | yangtou
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩卡一卡二| 一区二区三区高清视频在线观看| 亚洲无亚洲人成网站77777| 欧美日韩高清区| 中文精品一区二区三区| 夜色激情一区二区| 国产网站欧美日韩免费精品在线观看| 欧美在线资源| 美女脱光内衣内裤视频久久影院| 91久久亚洲| 亚洲精品乱码视频| 欧美精品系列| 午夜亚洲福利在线老司机| 欧美成年网站| 久久久久久久综合色一本| 亚洲国产日韩欧美| 日韩午夜在线播放| 国产日韩欧美精品在线| 亚洲国产精品t66y| 国产精品日韩一区| 欧美高清在线播放| 国产精品夜夜夜一区二区三区尤| 久久久久久久久伊人| 欧美大片在线观看一区二区| 亚洲伊人一本大道中文字幕| 小嫩嫩精品导航| 99精品视频免费| 欧美伊人久久大香线蕉综合69| 亚洲欧洲一区二区在线播放| 亚洲一区二区视频在线观看| 亚洲人久久久| 欧美在线一区二区| 亚洲一区二区在线观看视频| 久久久人成影片一区二区三区观看| 一区二区三区精品视频| 久久综合导航| 欧美在线观看视频在线| 欧美久久久久久蜜桃| 久久久久久国产精品mv| 国产精品xvideos88| 欧美激情精品久久久久久蜜臀| 国产精品少妇自拍| 亚洲毛片av| 日韩视频精品在线| 久热精品在线视频| 久久天堂av综合合色| 国产精品嫩草99av在线| 亚洲精品男同| 亚洲经典在线| 久久免费视频观看| 久久久久久久综合狠狠综合| 国产精品久久久久久久久久直播 | 亚洲国产高清一区| 欧美中文字幕第一页| 亚洲激情在线观看| 免费日韩av片| 免费观看久久久4p| 黑人巨大精品欧美一区二区| 怡红院精品视频| 欧美第一黄色网| 韩国精品久久久999| 性色一区二区三区| 欧美在线999| 国产欧美视频一区二区| 亚洲一区二区在线免费观看| 亚洲欧美电影在线观看| 国产精品毛片大码女人| 亚洲图片欧美午夜| 翔田千里一区二区| 国产日韩亚洲欧美综合| 欧美一区二区三区在线视频 | 欧美在线电影| 国产毛片精品国产一区二区三区| 亚洲图片欧美日产| 久久精品日产第一区二区| 国产一级一区二区| 久久久久久久激情视频| 免费在线亚洲欧美| 亚洲精品字幕| 欧美亚州韩日在线看免费版国语版| 亚洲靠逼com| 午夜久久久久久| 国产综合一区二区| 欧美jizz19性欧美| 日韩视频免费在线| 久久精品国产亚洲5555| 极品裸体白嫩激情啪啪国产精品| 麻豆freexxxx性91精品| 亚洲精品精选| 久久国产精品毛片| 亚洲精品久久久久久一区二区 | 亚洲免费在线视频| 美女成人午夜| 中文日韩电影网站| 国产在线观看一区| 欧美精品在线观看播放| 欧美主播一区二区三区| 性亚洲最疯狂xxxx高清| 一区二区三区在线看| 欧美日韩成人在线视频| 欧美在线观看网址综合| 亚洲人成久久| 久久激情综合| 亚洲深夜福利在线| 在线日韩欧美| 国产精品自拍视频| 欧美精品少妇一区二区三区| 性欧美1819性猛交| 日韩午夜在线| 欧美大片在线观看| 久久精品2019中文字幕| 中文日韩在线视频| 亚洲欧洲一区二区三区在线观看 | 伊人色综合久久天天五月婷| 欧美日韩免费观看一区| 久久人人爽人人爽| 亚洲欧美日韩精品久久久久| 亚洲欧洲免费视频| 欧美成人第一页| 久久久久国产精品www| 亚洲一区成人| 亚洲免费电影在线观看| 伊大人香蕉综合8在线视| 久久综合给合久久狠狠狠97色69| 久久精品五月婷婷| 日韩视频精品| 激情综合色综合久久综合| 国产精品剧情在线亚洲| 欧美人妖另类| 欧美黄色一区| 男女激情久久| 免费日韩一区二区| 鲁大师成人一区二区三区| 久久精品中文字幕一区| 午夜精品久久一牛影视| 亚洲男人的天堂在线| 亚洲一区二区3| 亚洲理伦电影| 99热精品在线| 夜色激情一区二区| 亚洲手机在线| 国产精品jvid在线观看蜜臀| 欧美a级片网| 欧美h视频在线| 欧美福利视频网站| 亚洲国产女人aaa毛片在线| 欧美成人精品| 亚洲国产欧美在线| 亚洲国产日韩在线| 亚洲精品一区在线| 亚洲视频在线观看三级| 亚洲免费在线| 久久精品主播| 欧美成人激情在线| 欧美日韩不卡| 国产精品久久久久免费a∨大胸| 国产精品久久99| 国产日韩一区二区三区在线播放| 国产日韩精品一区二区| 狠狠色伊人亚洲综合网站色| 亚洲大黄网站| 最新高清无码专区| 亚洲色诱最新| 久久国产夜色精品鲁鲁99| 久久亚洲春色中文字幕久久久| 男人天堂欧美日韩| 亚洲精品在线观| 亚洲一区欧美二区| 久热综合在线亚洲精品| 欧美三级乱码| 一区二区三区在线视频观看| 亚洲精品一区二区三区福利| 亚洲女性喷水在线观看一区| 久久九九国产| 亚洲精品美女91| 欧美在线一区二区| 欧美日韩精品在线视频| 国产一级揄自揄精品视频| 亚洲毛片在线观看.| 欧美一区二区黄色| 欧美国产日韩一二三区| 亚洲一区二区三区777| 免费av成人在线| 国产精品网站在线| 亚洲经典视频在线观看| 欧美中文字幕视频| 亚洲精品视频二区| 久久精品国产免费| 国产精品久久激情| 亚洲乱码日产精品bd| 久久精品国产欧美激情| 99精品视频免费观看视频| 麻豆国产精品777777在线 | 欧美一级片久久久久久久| 裸体一区二区三区| 国产一区二区三区的电影 | 日韩一级裸体免费视频| 久久免费国产| 国内精品久久久久久久果冻传媒 | 一区二区三区免费网站|