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

小四的海市蜃樓
Never surrender to complexity
posts - 21,comments - 59,trackbacks - 0

在程序設計實踐上看到這個簡單的快速排序,用模板重新寫了一遍,加深一下印象。平均算法復雜度為O(nlogn)。

其中尋找支點元素pivot有多種方法,不同的方法會導致快速排序的不同性能。根據分治法平衡子問題的思想,希望支點元素可以使p[m..n]盡量平均地分為兩部分,但實際上很難做到。下面給出幾種尋找pivot的方法。

1.選擇p[m..n]的第一個元素p[m]的值作為pivot;
2.選擇p[m..n]的最后一個元素p[n]的值作為pivot;
3.選擇p[m..n]中間位置的元素p[k]的值作為pivot;
4.選擇p[m..n]的某一個隨機位置上的值p[random(n-m)+m]的值作為pivot;
  按照第4種方法隨機選擇pivot的快速排序法又稱隨機化版本的快速排序法,在實際應用中該方法的性能也是最好的。本程序使用第4種方法。要求節點類型支持比較運算符。


template<typename T>
void quicksort(T* v, int n)
{
    
if (n<=1)
        
return;
    
int last = 0;
    
int pivot = rand()%n;
    swap(v, 
0, pivot);
    
for (int i = 1; i < n; i++)
    
{
        
if (v[i]<v[0])
            swap(v, 
++last, i);
    }

    swap(v, last, 
0);
    quicksort(v, last);
    quicksort(v
+last+1, n-last-1);
}


template
<typename T>
void swap(T* v, int i, int j)
{
    T tmp 
= v[i];
    v[i] 
= v[j];
    v[j] 
= tmp;    
}


隨手寫一個不太好看的測試程序

struct str
{
    str(
const char* a)
    
{
        assert(a);
        v 
= new char[strlen(a)+1];
        strcpy(v, a);
    }

    str(
const str& a)
    
{
        assert(a.v);
        v 
= new char[strlen(a.v)+1];
        strcpy(v, a.v);
    }

    
~str()
    
{
        delete [] v;
    }

    
void operator = (const str& a)
    
{
        
if (this == &a)
            
return;
        assert(a.v);
        delete [] v;
        v 
= new char[strlen(a.v)+1];
        strcpy(v, a.v);
    }

    
bool operator == (const str& a) const
    
{
        
return (strcmp(v, a.v)==0);
    }

    
bool operator > (const str& a) const 
    
{
        
return (strcmp(v, a.v)>0);
    }

    
bool operator < (const str& a) const
    
{
        
return (strcmp(v, a.v)<0);
    }

    
char* v;
}
;


int main(int argc, char* argv[])
{
    
int* array = new int [10];
    
for(int i = 0; i < 10; i++)
        array[i] 
= rand();
    quicksort(array, 
10);
    
for(i = 0; i < 10; i++)
    
{
        cout
<<array[i]<<endl;
    }


    str s[] 
= {"bd""e""ba""a"};
    quicksort(s, 
4);
    
for(i = 0; i < 4; i++)
    
{
        cout
<<s[i].v<<endl;
    }

    
return 0;
}


posted on 2007-12-29 14:31 小四 閱讀(422) 評論(0)  編輯 收藏 引用 所屬分類: 算法與數據結構
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品入口尤物| 免费日韩成人| 国产热re99久久6国产精品| 亚洲性感激情| 亚洲国产一区二区精品专区| 久久夜色精品国产欧美乱| 亚洲色图制服丝袜| 日韩一级在线| 99精品免费网| 一区二区精品在线观看| 日韩视频在线一区| 亚洲精品视频免费| 亚洲激情欧美| 一本色道久久88精品综合| 洋洋av久久久久久久一区| 一区二区高清| 欧美一区二区三区在线播放| 久久精品女人的天堂av| 欧美一区不卡| 欧美激情亚洲| 亚洲精品欧美日韩专区| 99ri日韩精品视频| 亚洲欧美在线视频观看| 欧美xart系列高清| 一区二区三区**美女毛片| 午夜视频精品| 欧美日韩精品免费| 免费的成人av| 亚洲裸体视频| 欧美成人午夜激情在线| 国产亚洲欧美一区在线观看| 日韩视频一区二区三区在线播放| 欧美一区综合| 亚洲综合电影| 国产精品美女午夜av| 亚洲区中文字幕| 欧美wwwwww| 久久在线免费| 日韩特黄影片| 亚洲精品老司机| 欧美国产欧美综合 | 久久精品日产第一区二区| 欧美激情区在线播放| 91久久在线观看| 亚洲国产成人精品久久| 麻豆精品一区二区av白丝在线| 国产日韩精品一区二区浪潮av| 香蕉成人久久| 久久在线免费观看视频| 亚洲破处大片| 中文精品一区二区三区| 欧美大片免费久久精品三p| 亚洲午夜久久久| 韩国欧美国产1区| 91久久线看在观草草青青| 欧美日韩在线视频观看| 亚洲一区二区免费| 久久青草久久| 亚洲欧美大片| 欧美不卡高清| 欧美一区二区三区四区在线观看地址 | 欧美精品一区二区在线播放| 亚洲精品日韩在线| 亚洲一区精品在线| 一区二区三区在线不卡| 日韩亚洲欧美在线观看| 国产精品vip| 亚洲人www| 在线欧美三区| 先锋影音国产一区| 一本色道久久综合狠狠躁篇怎么玩| 亚洲天堂免费观看| 99热在这里有精品免费| 久久久一区二区| 久久激情综合| 国产精品久久久久久模特| 欧美黄色免费网站| 好吊一区二区三区| 久久久久九九九| 久久久久久久网站| 国产精品影音先锋| 在线视频精品| 久久久91精品国产| 在线日韩欧美视频| 久久综合给合久久狠狠色| 国产日产精品一区二区三区四区的观看方式 | 亚洲欧美激情四射在线日 | 国内精品写真在线观看| 午夜在线电影亚洲一区| 午夜精品三级视频福利| 尤物九九久久国产精品的分类| 欧美黄色免费| 国产精品久久久久久av下载红粉| 久久久久久久综合| 欧美极品在线观看| 午夜影视日本亚洲欧洲精品| 久久九九精品99国产精品| 日韩一级在线| 久久精品国产一区二区三区免费看 | 亚洲午夜影视影院在线观看| 国产欧美一区二区三区在线老狼| 美女诱惑一区| 国产精品久久综合| 欧美国产精品劲爆| 国产日韩欧美不卡在线| 91久久精品美女高潮| 国产精品久久久久影院亚瑟| 奶水喷射视频一区| 国产日韩欧美三级| 亚洲精品综合| 亚洲国产成人高清精品| 亚洲午夜女主播在线直播| 亚洲国产精品久久久久婷婷老年| 亚洲一区二区三区影院| 日韩一区二区高清| 久久综合久久综合久久| 欧美在线一级va免费观看| 欧美日韩在线直播| 亚洲精品五月天| 91久久黄色| 久久久久9999亚洲精品| 欧美一二三视频| 国产精品白丝av嫩草影院| 亚洲欧洲在线观看| 亚洲国产色一区| 欧美影院久久久| 欧美一级理论性理论a| 欧美日韩中文在线观看| 亚洲美女在线一区| 国产精品盗摄一区二区三区| 亚洲日本va在线观看| 亚洲一区三区电影在线观看| 夜夜狂射影院欧美极品| 欧美精品1区| 亚洲激精日韩激精欧美精品| 91久久久在线| 美女视频一区免费观看| 久久综合伊人77777蜜臀| 国外成人在线视频| 小嫩嫩精品导航| 久久精品夜色噜噜亚洲aⅴ| 韩国av一区二区三区| 欧美一区二区视频网站| 久久国产精品久久久久久| 国产欧亚日韩视频| 中文国产一区| 欧美一级久久久久久久大片| 欧美午夜片在线观看| 这里只有精品视频| 亚洲综合首页| 国产精品视频一二| 午夜伦欧美伦电影理论片| 久久久久久久久久久一区| 国一区二区在线观看| 久久精品国产精品 | 亚洲免费电影在线| 久久久久久亚洲综合影院红桃| 老司机亚洲精品| 亚洲激情成人网| 欧美三级在线视频| 一本色道久久综合精品竹菊 | 亚洲欧美另类中文字幕| 国产免费成人av| 久久亚洲国产精品日日av夜夜| 亚洲国产成人porn| 亚洲永久在线观看| 国产一区二区三区在线观看免费视频| 久久久欧美精品sm网站| 亚洲高清视频在线观看| 亚洲一区二区三区在线观看视频| 国产精品v欧美精品v日韩| 亚洲一区在线免费| 欧美 日韩 国产一区二区在线视频 | 欧美日韩性视频在线| 午夜亚洲视频| 欧美激情亚洲一区| 欧美一区二区三区精品| 亚洲国产日韩一级| 国产精品网站一区| 欧美高清视频一区二区| 欧美在线|欧美| 99精品欧美一区二区三区| 欧美一区二区视频在线观看| 亚洲七七久久综合桃花剧情介绍| 国产噜噜噜噜噜久久久久久久久| 男女激情视频一区| 久久gogo国模裸体人体| 亚洲毛片av在线| 久久人人97超碰精品888| 亚洲美女淫视频| 国产一区二区精品丝袜| 在线看视频不卡| 久久精品成人欧美大片古装| 国产一区二区三区不卡在线观看| 99精品久久久| 国产午夜精品理论片a级大结局 | 久久夜色精品亚洲噜噜国产mv| 亚洲欧洲一区二区天堂久久| 香蕉久久夜色精品国产使用方法| 91久久嫩草影院一区二区|