給毛嘎講數據結構

背景:沒學過數據結構的毛嘎一日向計算機大神白小兔請教數據結構里面的排序算法,于是他十分認真的把大神傳過來的真經記錄在這里了。

1.快速排序
傳一個參數是low跟high(數組的頭尾坐標)
{
分界點=data[low]; //最終希望分界點數的左邊小右邊大;low就是數組第一個位置,為什么不是0,因為遞歸,在遞歸的第一次,low就是數組的頭部,data[0]
while(low<high)//low>high的時候代表整個數據遍歷完了
{
//在尾部找比分界點小的數,一旦找到,就把這個值與分界點(low對應的值)交換
while(low<high&&r[high]>分界點)
high--;//這個數比分解值大,往前找
//走到這,代表high值比分解點小了,或者數據遍歷完了
swap(low,high)//low是分界點,交換完之后,high就變成分界點
//在頭部找比分界點大的數,一旦找到,這個值與分界點(high對應的值)交換
while(low<high&&r[low]<分界點)
low++;//這個數比分解值小,往后找
//循環走完,代表low上的值比分界點大,或者數據遍歷完了low=high
swap(low,high)//分界點與low對應的值交換,把比分界點大的值放到分界點左邊,此時high就是分界點,交換完之后,low又變成分界點

}
}

-----純代碼
傳一個參數是low跟high(數組的頭尾坐標)
{
分界點=data[low];
while(low<high)//low>high的時候代表整個數據遍歷完了
{
while(low<high&&r[high]>分界點)
high--;
swap(low,high)
while(low<high&&r[low]<分界點)
low++;
swap(low,high)
}
}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經驗。 張土汪:刷leetcod...
    土汪閱讀 12,779評論 0 33
  • 經過大概一個月的時間,終于數據結構學習進入尾聲了,當然我覺得還需要再深入的研究,現在只是看了一遍,理解了,但是離透...
    KevinCool閱讀 374評論 0 0
  • 1 序 2016年6月25日夜,帝都,天下著大雨,拖著行李箱和同學在校門口照了最后一張合照,搬離寢室打車去了提前租...
    RichardJieChen閱讀 5,173評論 0 12
  • 書架上擺放著許多久不翻閱而積塵一片的書,有些時間實在太久了,像閆真的三部曲,那是進入大學買的第一套書,確實是花了大...
    王家人寧閱讀 384評論 0 0
  • PeterPanjess閱讀 126評論 0 0