<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      快速排序

      快速排序

      最壞情形時間復雜度\(\mathrm{O}(N^2)\)
      平均運行時間\(\mathrm{O}(NlogN)\)

      //快速排序驅動程序
      void QuickSort(int  *a; int N)
      {
      	Qsort(a, 0, N - 1);
      }
      
      //實現三數中值分割法的程序
      int Median3(int *a, int Left, int Right)
      {
      	int Center = (Left + Right) / 2;
      
      	if (a[Left] < a[Center]) swap(&a[Left], &a[Center]);
      	if (a[Left] < a[Right]) swap(&a[Left], &a[Right]);
      	if (a[Center] < a[Right]) swap(&a[Center], &a[Right]);
      
      	swap(&a[Center], &a[Right - 1]);
      	return a[Right - 1];
      }
      
      //快速排序主例程
      #define Cutoff 3
      
      void Qsort(int *a, int Left, int Right)
      {
      	int i, j;
      	int Pivot;
      
      	if (Left + Cutoff <= Right)
      	{
      		Pivot = Median3(a, Left, Right);
      		i = Left;
      		j = Right - 1;
      		for (; ; )
      		{
      			while (a[++i] < Pivot) {}
      			while (a[--j] > Pivot) {}
      			if (i < j) swap(&a[i], &a[j]);
      			else break;
      		}
      		swap(&a[i], &a[Right - 1]);
      
      		Qsort(a, Left, i - 1);
      		Qsort(a, i + 1, Right);
      	}
      	else InsertionSort(a + Left, Right - Left + 1);//做一次插入排序
      }
      
      1. 該算法通過選取一個樞紐元,然后使數組的剩余部分大于樞紐元的在一側,小于樞紐元的在另一側,然后對兩邊使用同樣的方法,就是這樣使用遞歸的操作是的整個數組有序
      2. 算法的移動策略大致如圖:
      • 假如初始數組為8,1,4,9,6,3,5,2,7,0然后選取6為樞紐元,然后將樞紐元與數組最后一個元素交換
      8 1 4 9 0 3 5 2 7 6
      • 然后使用兩個指針i,j,i從第一個元素開始,j從倒數第二個元素開始
      8 1 4 9 0 3 5 2 7 6
      i↑ - - - - - - - j↑ -
      • i向右移動,將j向左移動,當i指向的數字大于樞紐元時停下,當j指向的數字小于樞紐元時停下

      8| 1| 4| 9| 0| 3| 5| 2| 7| 6
      -|-|-|-|-|-|-|-|-|-|-
      i↑|-|-|-|-|-|-|j↑|-|-

      • 此時若ij的左邊,則交換兩個元素

      2| 1| 4| 9| 0| 3| 5| 8| 7| 6
      -|-|-|-|-|-|-|-|-|-|-
      i↑|-|-|-|-|-|-|j↑|-|-

      • 經過若干次這樣的操作后i指針將跑到j指針的右邊

      2| 1| 4| 5| 0| 3| 9| 8| 7| 6
      -|-|-|-|-|-|-|-|-|-|-
      -|-|-|-|-|j↑|i↑|-|-|-

      • 此時ij已交錯,故不再交換,此時將樞紐元與i指向的元素交換,至此就完成了一次快速排序

      2| 1| 4| 5| 0| 3| 6| 8| 7| 9
      -|-|-|-|-|-|-|-|-|-|-
      -|-|-|-|-|j↑|i↑|-|-|-

      3 示例代碼中的三數中值分割法是將a[Left],a[Right]a[Center]先進行排序,得到適當的樞紐元且在交換后返回,ij也從Left + 1Right - 2開始判斷

      posted @ 2019-08-14 23:00  start-from-ling  閱讀(140)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 欧美高清狂热视频60一70| 日韩精品一区二区高清视频| 中文字幕第55页一区| 亚洲女同在线播放一区二区| 天天做天天爱夜夜爽| 国产精品国产亚洲区久久| 加勒比中文字幕无码一区| 久青草视频在线观看免费| gogogo高清在线观看视频中文| 在线国产精品中文字幕| 国产va免费精品观看| 亚洲国产综合精品 在线 一区| 自拍偷拍一区二区三区四| 一本无码人妻在中文字幕免费| 四虎成人精品永久免费av| 成人精品国产一区二区网| 亚洲欧洲一区二区免费| 中文国产日韩欧美二视频| 一区二区三区四区亚洲综合| 成年无码av片在线蜜芽| 爱色精品视频一区二区| 成人网站网址导航| 国产精品亚洲二区在线播放| 在线国产极品尤物你懂的| 日本精品极品视频在线| 苍井空毛片精品久久久| 亚洲男人第一无码av网站| 夜色福利站WWW国产在线视频 | 久久免费网站91色网站| 德保县| 内射合集对白在线| 亚洲人成人无码网WWW电影首页| 东方四虎在线观看av| 大又大又粗又硬又爽少妇毛片 | 国产播放91色在线观看| 成人国产亚洲精品天堂av| 中文字幕日韩精品亚洲一区| 国产成人综合在线观看不卡| 成人国产精品一区二区网站公司| 黔东| 熟妇人妻不卡中文字幕|