欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
快速排序--C語(yǔ)言

 快速排序是對冒泡排序的一種改進(jìn)。它的基本思想是:通過(guò)一躺排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一不部分的所有數據都要小,然后再按次方法對這兩部分數據分別進(jìn)行快速排序,整個(gè)排序過(guò)程可以遞歸進(jìn)行,以此達到整個(gè)數據變成有序序列。

   假設要排序的數組是A[1]……A[N],首先任意選取一個(gè)數據(通常選用第一個(gè)數據)作為關(guān)鍵數據,然后將所有比它的數都放到它前面,所有比它大的數都放到它后面,這個(gè)過(guò)程稱(chēng)為一躺快速排序。一躺快速排序的算法是:

  1)、設置兩個(gè)變量I、J,排序開(kāi)始的時(shí)候I:=1,J:=N;

  2)以第一個(gè)數組元素作為關(guān)鍵數據,賦值給X,即X:=A[1];

  3)、從J開(kāi)始向前搜索,即由后開(kāi)始向前搜索(J:=J-1),找到第一個(gè)小于X的值,兩者交換;

  4)、從I開(kāi)始向后搜索,即由前開(kāi)始向后搜索(I:=I+1),找到第一個(gè)大于X的值,兩者交換;

  5)、重復第3、4步,直到I=J;

  例如:待排序的數組A的值分別是:(初始關(guān)鍵數據X:=49)

                  A[1]    A[2]    A[3]    A[4]    A[5]     A[6]    A[7]: 

                    49       38      65      97      76      13       27

進(jìn)行第一次交換后:  27       38      65      97      76      13       49

                  ( 按照算法的第三步從后面開(kāi)始找

進(jìn)行第二次交換后:  27       38      49      97      76      13       65

                 ( 按照算法的第四步從前面開(kāi)始找>X的值,65>49,兩者交換,此時(shí)I:=3 )

進(jìn)行第三次交換后:  27       38      13      97      76      49       65

( 按照算法的第五步將又一次執行算法的第三步從后開(kāi)始找

進(jìn)行第四次交換后:  27       38      13      49      76      97       65

( 按照算法的第四步從前面開(kāi)始找大于X的值,97>49,兩者交換,此時(shí)J:=4 )

     此時(shí)再執行第三不的時(shí)候就發(fā)現I=J,從而結束一躺快速排序,那么經(jīng)過(guò)一躺快速排序之后的結果是:27       38      13      49      76      97       65,即所以大于49的數全部在49的后面,所以小于49的數全部在49的前面。

     快速排序就是遞歸調用此過(guò)程——在以49為中點(diǎn)分割這個(gè)數據序列,分別對前面一部分和后面一部分進(jìn)行類(lèi)似的快速排序,從而完成全部數據序列的快速排序,最后把此數據序列變成一個(gè)有序的序列,根據這種思想對于上述數組A的快速排序的全過(guò)程如圖6所示:

 

 初始狀態(tài)                       {49    38    65    97    76    13    27}   

進(jìn)行一次快速排序之后劃分為     {27    38    13}    49  {76    97    65}

分別對前后兩部分進(jìn)行快速排序 {13}   27   {38} 

                                                          結束        結束   49   {65}   76   {97}

                                                                   圖6   快速排序全過(guò)程

 

// QuickSort.cpp : Defines the entry point for the console application.
//

#include 
"stdafx.h"
#include
"stdio.h"
void main()
{
    
void quickSort(int [],int,int);
    
int a[7]={8,2,6,12,1,9,5};
    
int i;
    quickSort(a,
0,6);/*排好序的結果*/
    
for(i=0;i<7;i++)
        printf(
"%4d",a[i]);
}

void quickSort(int a[],int left,int right)
{
   
int i,j,temp;
   i
=left;
   j
=right;
   temp
=a[left];
   
if(left>right)
      
return;
   
while(i!=j)/*找到最終位置*/
   
{
      
while(a[j]>=temp && j>i)
         j
--;
      
if(j>i)
         a[i
++]=a[j];

      
while(a[i]<=temp && j>i)
          i
++;
      
if(j>i)
          a[j
--]=a[i];
   }

   a[i]
=temp;
   quickSort(a,left,i
-1);/*遞歸左邊*/
   quickSort(a,i
+1,right);/*遞歸右邊*/
}



 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1529686

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Java教程教:你5分鐘了解快速排序
知識點(diǎn)總結之排序算法
這些經(jīng)典排序,你必須掌握
九大基礎排序總結與對比
java中的基本算法
java實(shí)現經(jīng)典排序算法
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久