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

小四的海市蜃樓
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 小四 閱讀(424) 評論(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>
            亚洲国产精品99久久久久久久久| 91久久综合| 亚洲欧美日韩一区在线| 国产精品s色| 久久精品99国产精品酒店日本| 亚洲一区美女视频在线观看免费| 国产精品国产三级欧美二区| 亚洲欧美中文日韩在线| 午夜一区在线| 亚洲福利在线观看| 99riav久久精品riav| 国产精品久久久久久久久免费桃花| 亚洲欧美在线一区| 久久三级福利| 亚洲天堂黄色| 久久av资源网站| 亚洲精品一区二区三区四区高清| 日韩亚洲成人av在线| 国产女主播在线一区二区| 久久久一本精品99久久精品66| 两个人的视频www国产精品| 在线亚洲国产精品网站| 亚洲欧美视频在线观看| 亚洲精品1区| 亚洲女同精品视频| 亚洲精品一二三区| 亚洲在线成人| 亚洲精品视频一区二区三区| 午夜精品理论片| 亚洲美女毛片| 久久精品视频免费| 亚洲视频免费看| 狂野欧美激情性xxxx欧美| 亚洲一区二区三区四区中文 | 中文精品视频| 久久久成人网| 欧美一区二区三区免费观看视频| 久久一区二区视频| 欧美一级久久久| 欧美日韩大片| 欧美激情1区| 国产在线精品二区| 国产精品99久久久久久宅男| 在线欧美日韩国产| 亚洲女人天堂成人av在线| 亚洲伦理精品| 老司机一区二区| 久久天天狠狠| 国产一区二区视频在线观看| 亚洲视频在线二区| 亚洲美女电影在线| 免费av成人在线| 麻豆av一区二区三区| 国产欧美日韩一级| 亚洲天天影视| 中文在线资源观看网站视频免费不卡| 老司机成人在线视频| 欧美在线综合| 国产精品入口麻豆原神| 99综合在线| 一本色道久久综合亚洲精品高清| 欧美gay视频激情| 欧美激情影音先锋| 亚洲黄色一区| 欧美福利网址| 91久久夜色精品国产网站| 亚洲国产欧美日韩精品| 久久综合综合久久综合| 免费成人在线视频网站| 亚洲国产精品一区二区第四页av| 久久精品免视看| 美女脱光内衣内裤视频久久影院 | 国产午夜亚洲精品不卡| 亚洲欧美日韩国产精品| 欧美伊人久久大香线蕉综合69| 国产精品嫩草99av在线| 亚洲欧美日韩精品久久| 欧美亚洲三区| 一区在线观看| 欧美国产91| 一区二区三区三区在线| 欧美一区免费| 在线国产亚洲欧美| 欧美猛交免费看| 一区二区三区欧美日韩| 久久精品国产第一区二区三区| 国模私拍视频一区| 农村妇女精品| 亚洲午夜精品久久| 老司机成人在线视频| 亚洲欧洲日产国产综合网| 欧美久久久久免费| 亚洲伊人一本大道中文字幕| 久久人人九九| 日韩午夜三级在线| 国产麻豆精品theporn| 老司机午夜精品| 一区二区三区福利| 美女黄色成人网| 日韩视频第一页| 国产一区二区三区在线免费观看 | 国产精品国产三级国产专播品爱网| 亚洲资源av| 亚洲大片在线| 性久久久久久久久久久久| 原创国产精品91| 国产精品狠色婷| 狂野欧美一区| 香蕉久久夜色精品国产使用方法| 欧美高清成人| 欧美中文字幕不卡| 99伊人成综合| 136国产福利精品导航网址| 欧美日韩中文精品| 免费不卡在线视频| 午夜欧美不卡精品aaaaa| 亚洲国产一区二区视频| 久久久久久久999精品视频| 一本色道久久综合亚洲精品不卡 | 亚洲欧美大片| 亚洲精品黄色| 激情久久中文字幕| 国产欧美激情| 欧美少妇一区| 欧美激情视频给我| 久久这里只有精品视频首页| 西西人体一区二区| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美成人午夜视频| 久久亚洲精品一区二区| 欧美一级二区| 欧美一区2区视频在线观看 | 精品不卡一区二区三区| 国产精品久久午夜夜伦鲁鲁| 欧美日韩国产色视频| 欧美激情一区二区三区在线| 久久久久中文| 久久精品国产综合| 欧美一区午夜视频在线观看| 亚洲欧美成人一区二区在线电影| 亚洲精品乱码视频| 亚洲人www| 亚洲精品日韩欧美| 99re66热这里只有精品4| 亚洲每日在线| 一区二区三区高清在线| 亚洲卡通欧美制服中文| 亚洲精品一区在线观看| 亚洲九九精品| 在线亚洲美日韩| 亚洲免费在线视频| 亚欧成人在线| 久久精品91久久久久久再现| 欧美专区在线观看一区| 久久se精品一区精品二区| 欧美一区二区三区在线观看视频| 欧美一区二区日韩| 久久aⅴ国产紧身牛仔裤| 久久青草久久| 欧美黑人国产人伦爽爽爽| 欧美激情视频一区二区三区免费| 欧美精品aa| 国产精品美女诱惑| 国内外成人在线视频| 国产一区视频观看| 亚洲国产精品ⅴa在线观看| 99国产精品久久| 亚洲一区日韩在线| 久久综合久久综合久久综合| 欧美大胆a视频| 在线亚洲精品福利网址导航| 性视频1819p久久| 蜜桃av一区二区三区| 欧美日韩在线观看视频| 国产精品日韩欧美综合| 136国产福利精品导航| 日韩天天综合| 欧美一区网站| 亚洲第一精品福利| 亚洲影院一区| 免费成人高清视频| 国产精品香蕉在线观看| 91久久久一线二线三线品牌| 亚洲一区二区三区高清不卡| 久久综合色婷婷| 中文精品在线| 欧美成人国产一区二区| 国产欧美日韩高清| 日韩视频精品在线| 久久久久一本一区二区青青蜜月| 亚洲高清在线视频| 欧美在线中文字幕| 国产精品电影观看| 亚洲美女视频网| 久久精品一区二区三区四区 | 亚洲午夜伦理| 欧美激情女人20p| 黄色精品一二区| 欧美有码在线观看视频| 亚洲美女视频网|