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

那誰的技術博客

感興趣領域:高性能服務器編程,存儲,算法,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>
            欧美伊人久久久久久午夜久久久久| 久久国产精品久久久| 免费成人高清视频| 久久久久成人网| 久久精品免费播放| 免费看亚洲片| 欧美三级特黄| 国产欧美日韩一级| 亚洲电影在线看| 亚洲精品乱码久久久久久按摩观 | 国产一区二区看久久| 国产一级揄自揄精品视频| 在线观看一区| 亚洲新中文字幕| 久久久亚洲国产天美传媒修理工| 欧美国产精品劲爆| 一本到12不卡视频在线dvd| 亚洲在线日韩| 免费视频一区| 国产精品一区二区男女羞羞无遮挡| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲乱码国产乱码精品精天堂| 一区二区三区日韩精品| 久久国产直播| 亚洲精品日日夜夜| 久久精品国产视频| 欧美系列精品| 亚洲高清视频的网址| 亚洲在线免费观看| 欧美国产日韩亚洲一区| 亚洲欧美激情一区| 欧美激情a∨在线视频播放| 国产精品一级二级三级| 日韩视频二区| 欧美+亚洲+精品+三区| 亚洲综合大片69999| 欧美精品一区在线发布| 亚洲一卡久久| 欧美77777| 在线成人激情黄色| 久久成年人视频| 中文久久乱码一区二区| 欧美插天视频在线播放| 伊人久久大香线蕉综合热线| 性色一区二区| 亚洲视频碰碰| 欧美性事在线| 亚洲一区欧美一区| 亚洲毛片在线观看.| 欧美成人午夜免费视在线看片| 伊人久久成人| 嫩草国产精品入口| 久久亚洲美女| 亚洲国产精品精华液网站| 米奇777在线欧美播放| 久久久久九九九九| 影音先锋日韩精品| 美日韩免费视频| 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美黄色小视频| 亚洲国产欧美日韩另类综合| 老司机免费视频久久| 久久国产日本精品| 在线观看国产日韩| 欧美激情精品久久久久久黑人| 久久理论片午夜琪琪电影网| 狠狠色丁香久久婷婷综合_中| 久久久久久一区二区| 久久九九精品99国产精品| 在线观看欧美亚洲| 欧美国产欧美亚洲国产日韩mv天天看完整 | 国产精品欧美激情| 欧美一区二区三区在线看| 午夜欧美大尺度福利影院在线看| 国产日韩欧美麻豆| 老司机精品导航| 欧美国产综合视频| 99re成人精品视频| 亚洲视频精选在线| 国产自产v一区二区三区c| 欧美高清视频| 欧美三区在线视频| 久久久久久久久久久一区 | 欧美性生交xxxxx久久久| 欧美一区精品| 亚洲国产精品日韩| 免费在线亚洲| 亚洲女与黑人做爰| 久久国产一区二区| 99re66热这里只有精品3直播| 一区二区三区欧美成人| 黄色亚洲免费| 亚洲乱码国产乱码精品精可以看| 国产精品久久久久久久久久久久久久| 欧美一区二区在线观看| 蜜臀av国产精品久久久久| 亚洲欧美日韩视频二区| 久久久久在线观看| 亚洲在线观看| 男女视频一区二区| 久久国产精品99久久久久久老狼| 免费成人av资源网| 欧美一区二区女人| 欧美日韩精品免费| 噜噜噜在线观看免费视频日韩| 欧美日韩综合视频| 欧美高清成人| 国语精品一区| 亚洲一区二区久久| 中文精品视频| 久久色在线播放| 性色一区二区三区| 欧美三级午夜理伦三级中视频| 欧美va天堂在线| 国产视频在线观看一区| 亚洲精品久久久久久一区二区| 国产一区二区三区在线观看视频| 亚洲麻豆一区| 亚洲毛片在线看| 久久性色av| 久久天堂国产精品| 国产欧美日韩视频| 国产精品99久久久久久久vr| 日韩视频在线播放| 蜜臀a∨国产成人精品| 久久一二三区| 狠狠色狠色综合曰曰| 午夜精品久久久久影视| 亚洲欧美日韩一区二区在线 | 亚洲国产日韩欧美在线动漫| 欧美在线网址| 久久免费一区| 黄色一区二区在线观看| 欧美影院久久久| 久久九九免费视频| 国产亚洲成av人在线观看导航| 亚洲影视在线| 久久精品av麻豆的观看方式| 国产丝袜一区二区三区| 欧美亚洲在线播放| 久久精品国产亚洲a| 国产亚洲精品久久久| 久久不射网站| 男人插女人欧美| 亚洲美女视频在线观看| 欧美美女日韩| 亚洲视频在线观看一区| 欧美一区免费视频| 黄色一区二区三区| 欧美aⅴ99久久黑人专区| 欧美激情成人在线| 一区二区三区蜜桃网| 国产精品高潮在线| 午夜精品一区二区三区在线播放| 国产精品久久久久一区二区三区共| 一区二区三区色| 久久久蜜臀国产一区二区| 亚洲风情亚aⅴ在线发布| 欧美国产日产韩国视频| 一区二区三区高清| 欧美影院在线| 亚洲激情二区| 国产精品久久久999| 欧美在线观看日本一区| 欧美激情中文字幕乱码免费| 一区二区三区鲁丝不卡| 国产一区二区无遮挡| 欧美超级免费视 在线| 在线亚洲观看| 快播亚洲色图| 亚洲免费在线视频一区 二区| 国产在线一区二区三区四区| 欧美激情久久久久| 欧美在线免费视频| 亚洲精品国产拍免费91在线| 羞羞答答国产精品www一本| 亚洲二区免费| 国产麻豆日韩| 欧美日韩精品免费观看视频| 欧美在线在线| 在线视频免费在线观看一区二区| 久久亚洲欧美国产精品乐播| 亚洲自拍都市欧美小说| 亚洲国产成人久久| 国产精品一区免费观看| 欧美激情综合色| 久久国内精品视频| 亚洲一区二区三区精品在线观看| 欧美国产日韩亚洲一区| 久久精品一本| 亚洲欧美偷拍卡通变态| 亚洲剧情一区二区| 精品999在线播放| 国产精品一区三区| 欧美日韩国产高清| 欧美成人在线网站| 久久一区二区精品| 久久国产精品电影| 篠田优中文在线播放第一区| 中文精品视频|