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

依舊的博客

技術(shù)學(xué)習(xí)

C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
  17 Posts :: 1 Stories :: 2 Comments :: 0 Trackbacks
1. 冒泡排序

?思想:

  1. 從現(xiàn)有元素中取出最大的元素,移到相應(yīng)的位置,直到所有元素都就位。
  2. 通過比較和交換逐步調(diào)整現(xiàn)有序列,最終找出最大元素并使其就位。

?設(shè)計:

? 輸入是待排數(shù)組及其長度,輸出排序后的數(shù)組。
??在冒泡過程中對數(shù)組的有序情況進(jìn)行檢查,在數(shù)組已經(jīng)有序時便結(jié)束算法。

代碼:

void BubbleSort(int nArray[], int nLength)
{
???? bool bSorted = false;
???
???? if (nArray == NULL)
???????? throw -1;
???
???? if (nLength < 2)
??????? ?return;
???
??? for (int i = nLength; !bSorted && i > 1; i--)
??? {
??????? ?bSorted = true;
???????
???????? for (int j = 1; j < i; j++)
??????? {
???????????? if (nArray[j] < nArray[j-1])
??????????? {
???????????????? int n;
???????????????? n = nArray[j];
???????????????? nArray[j] = nArray[j-1];
???????????????? nArray[j-1] = n;
???????
???????????????? bSorted = false;
???????????? }//if
???????? }
?????}

}

2. 雙向冒泡排序

void BiBubbleSort(int nArray[], int nLength)
{
????int? low, high;
?
????if (nArray == NULL)
???????throw -1;

????if (nLength < 2)
???????returnt;

??? low = 0;
????high = nLength - 1;
??? while (low < high)
?? {
???????int t;

???????t = low;
???????for (int i = low; i < high; i++)
?????? {
?????????? if (nArray[i] > nArray[i+1])
????????? {
????????????? int n;
????????????? n = nArray[i];
????????????? nArray[i] = nArray[i+1];
????????????? nArray[i+1] = n;

????????????? t = i + 1;
????????? }
?????? }
?????? high = t - 1;

????? t = high;
???? ?for (int j = high; j > low; j--)
????? {
????????? if (nArray[j] < nArray[j-1])
?????? ?? {
???????????? int n;
???????????? n = nArray[j];
???????????? nArray[j] = nArray[j-1];
???????????? nArray[j-1] = n;
????????????
???????????? t = j - 1;
????????? }
????? }

???? low = t + 1;

? }//while

}

3. 快速排序

?思想:

?選一個樞軸元素,把待排序列劃分成兩段,前一段不大于樞軸,?后一段不小于樞軸。如果這兩段分別有序,原序列也隨之有序。通過劃分,一個段的排序可以轉(zhuǎn)化為兩個子段的排序,即同樣性質(zhì)但較小規(guī)模的問題。當(dāng)段的長度為1時,本身是有序的,轉(zhuǎn)化可以終止。

設(shè)計:

用一個遞歸函數(shù)來實現(xiàn)快速排序算法,遞歸終止條件是段的長度小于等于1。
一次劃分過程設(shè)計如下:取段的第一個元素為樞軸,從最后一個元素向前與樞軸比較,發(fā)現(xiàn)小于樞軸的元素時,與樞軸交換位置,從第二個元素向后與樞軸比較,這樣兩端是已完成劃分的部分,中間是待劃分的部分,樞軸始終處于中間部分的一端,比較從另一端向該端進(jìn)行,發(fā)現(xiàn)分類不同的元素就同樞軸交換。隨著比較和交換的進(jìn)行,中間部分不斷收縮(每次長度縮短1),當(dāng)收縮到長度為1時,劃分終止。

實現(xiàn)要點:

遞歸函數(shù)的參數(shù)是待排序列及前后邊界。
劃分過程需要用兩個變量記錄中間部分的邊界。

代碼:

void QuickSort(int nArray[], int low, int high)
{
???? int pivot = nArray[low];
???? int?i = low,j = high;
???
???? if (high < low)
???????????return;???
????
???? while (i < j)
???? {
????????? while (i <?j && nArray[j] >= pivot) j--;
????????? if (i < j)?
?????????????? nArray[i++] = nArray[j];
?
????????? while (i <?j && nArray[i] <= pivot) i++;
????????? if (i < j)?
?????????????? nArray[j--] = nArray[i];
???? }
????
???? nArray[i] = pivot;
???
???? QuickSort(nArray, low,?i - 1);
???? QuickSort(nArray,?i + 1, high);
}

測試要點:

  1. 遞歸終止條件。必須是high < low,而不能是 high?== low。遞歸的終止是很重要的邊界情況,在實現(xiàn)之前有一個概念上的終止條件,但在實現(xiàn)時處理必須準(zhǔn)確。終止條件和遞推方式有關(guān),需要結(jié)合實際的遞推方式來確定。
  2. 遞歸的遞推方式。
  3. 分劃的終止條件。分劃過程在i == j時終止,雖然在比較的過程中可能進(jìn)行交換,但是每次未分劃部分的長度減1,用該長度控制分劃的終止。
  4. 分劃過程中改變方向時的交接。

算法分析:

假設(shè)原序列有2n個元素,每次分劃把一個段等分成兩段,則經(jīng)過n級遞歸算法終止,每一級遞歸的比較總數(shù)為n, 所以QuickSort()的時間為O(nlog(n)),這是平均情況。當(dāng)原序列本身有序時,QuickSort()出現(xiàn)最壞情況,時間為O(n2)。

posted on 2006-05-09 16:37 依舊的博客 閱讀(380) 評論(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>
            午夜精品久久久久久久蜜桃app | 亚洲激情精品| 国产精品美女久久久久久2018| 欧美日韩国产区一| 欧美日韩国产色综合一二三四| 欧美搞黄网站| 欧美日韩中文在线观看| 欧美日韩综合视频| 国产精品视频精品视频| 国产丝袜一区二区| 在线看片一区| 中文日韩在线视频| 欧美一级一区| 久久综合五月天婷婷伊人| 免费成人小视频| 亚洲第一网站| 一本色道久久综合亚洲精品按摩 | 亚洲精选视频在线| 亚洲午夜一区二区| 久久视频这里只有精品| 欧美精品福利视频| 国产精一区二区三区| 一区二区亚洲精品国产| 99精品欧美一区| 欧美一区二区三区在线观看视频| 久久人人爽人人爽爽久久| 亚洲国产精品va在线看黑人| 中文国产成人精品| 免费看精品久久片| 国产美女一区二区| 亚洲毛片网站| 久久精品人人爽| 一区二区三区久久久| 久久久久久91香蕉国产| 国产精品久久久久av免费| 亚洲国产精品123| 欧美一区二区三区婷婷月色| 亚洲国产日韩欧美在线图片| 久久疯狂做爰流白浆xx| 欧美99在线视频观看| 美国成人直播| 国产亚洲欧美日韩在线一区| 亚洲网站在线播放| 亚洲成色999久久网站| 欧美一区=区| 欧美亚洲成人精品| 日韩亚洲欧美一区| 欧美成人精品影院| 亚洲永久免费观看| 欧美日韩中文字幕| 日韩视频免费| 亚洲国产精品成人久久综合一区| 欧美一级片一区| 国产精品久久久久一区| 正在播放欧美视频| 亚洲精品欧美一区二区三区| 毛片一区二区| 亚洲激情视频网站| 免费人成网站在线观看欧美高清| 午夜一区二区三视频在线观看| 欧美日韩亚洲高清| 99精品国产一区二区青青牛奶| 欧美成人免费网| 狂野欧美激情性xxxx欧美| 伊人久久亚洲影院| 麻豆国产精品va在线观看不卡| 亚洲欧美日韩在线| 国产精品色一区二区三区| 亚洲制服av| 亚洲欧美日韩国产精品| 国产精品一区二区三区观看| 午夜精品久久久久久久99黑人| 亚洲少妇在线| 国产性猛交xxxx免费看久久| 久久婷婷国产综合精品青草| 久久久青草青青国产亚洲免观| 亚洲国产一区二区三区青草影视| 亚洲欧洲日韩在线| 国产精品国产三级国产专播精品人 | 午夜精彩视频在线观看不卡| 亚洲先锋成人| 黄色成人小视频| 欧美激情精品久久久久久大尺度| 免费观看欧美在线视频的网站| 日韩视频在线一区| 一区二区三区免费看| 国产日韩欧美精品在线| 久久手机精品视频| 欧美二区不卡| 亚洲无线观看| 亚洲一区观看| 久久久久久9| 国产精品第十页| 中文欧美字幕免费| 99成人在线| 国产一区二区精品丝袜| 久久综合九色欧美综合狠狠| 久久天天躁狠狠躁夜夜爽蜜月| 1000部国产精品成人观看| 欧美激情1区2区3区| 国产精品美女一区二区在线观看| 性娇小13――14欧美| 欧美在线999| 亚洲日产国产精品| 一区二区三区免费观看| 国内自拍一区| 亚洲国语精品自产拍在线观看| 国产精品白丝av嫩草影院| 欧美在线首页| 久久综合九色综合网站| 一区二区高清视频在线观看| 亚洲一区二区三区高清不卡| 韩国成人精品a∨在线观看| 一区二区三区国产在线观看| 国产亚洲精品bt天堂精选| 欧美激情国产高清| 国产精品黄色| 免费在线观看精品| 欧美午夜片在线观看| 欧美亚洲日本一区| 欧美黄色日本| 久久人人爽人人爽| 欧美调教视频| 免费观看不卡av| 国产精品久久久久久久久久免费看| 亚洲第一狼人社区| 国产一区二区三区在线播放免费观看 | 亚洲激情电影在线| 亚洲一区免费网站| 亚洲国产一区二区在线| 亚洲图片欧洲图片av| 国产精品素人视频| 亚洲一区二区三区免费在线观看| 91久久中文| 久久国产精品99国产| 亚洲一区二区三| 欧美福利影院| 欧美成年人视频| 亚洲欧洲精品成人久久奇米网| 久久人人爽人人爽爽久久| 午夜精品久久久久久久99水蜜桃 | 国产精品一区二区你懂得| 亚洲激情一区| 在线播放豆国产99亚洲| 亚洲自拍另类| 国产精品免费视频观看| 亚洲午夜精品网| 亚洲性视频网址| 欧美精品一区二区三区蜜臀| 亚洲性感激情| 国产欧美日本一区二区三区| 中文一区二区| 在线综合亚洲| 欧美日韩成人一区二区| 欧美国产第二页| 亚洲国产成人久久综合| 欧美专区中文字幕| 狂野欧美一区| 亚洲愉拍自拍另类高清精品| 亚洲欧美国产视频| 国产精品久久久久久久一区探花| 99视频一区二区三区| 一本色道婷婷久久欧美| 欧美另类高清视频在线| 久久久久国产精品人| 亚洲黄色成人网| 欧美va亚洲va日韩∨a综合色| 美女精品一区| 1000部国产精品成人观看| 麻豆精品视频在线观看| 欧美高清视频一区| 亚洲一区二区欧美| 国产伦精品一区二区三区在线观看 | 狠狠入ady亚洲精品经典电影| 亚洲国产高清高潮精品美女| 亚洲人成网在线播放| 欧美国产日韩一区二区三区| 亚洲大片精品永久免费| 亚洲狼人精品一区二区三区| 国产精品男人爽免费视频1| 亚洲欧美在线一区二区| 久久偷窥视频| 亚洲精品乱码| 国产精品伦子伦免费视频| 久久成人一区二区| 亚洲小视频在线观看| 久久精品国产综合精品| 欧美精品一区二| 亚洲在线免费| 蜜桃久久av| 亚洲视频大全| 国产在线精品二区| 久久国产精品一区二区三区| 美女久久一区| 一区二区三区视频在线| 国产一区二区三区久久悠悠色av | 欧美日韩在线一区二区三区| 午夜精品一区二区三区在线视 | 免费久久精品视频| 亚洲一区三区在线观看|