程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> java-Java快速排序,幫忙看一下下面的代碼有沒有錯!

java-Java快速排序,幫忙看一下下面的代碼有沒有錯!

編輯:編程解疑
Java快速排序,幫忙看一下下面的代碼有沒有錯!

快速排序,下面的代碼親測,能夠運行,結果也正確,但是我感覺怪怪的!想問一下紅色框裡的代碼是不是有問題,希望解釋一下圖片說明

最佳回答:


沒問題呀,這是快速排序的一種版本,是標准程序。
你也可以把array[low] = array[high]改成類似swap(array[low],array[high])這樣的語句,更符合快速排序的交換思想(把小於index的交換到前面,把大於index的交換到後面)。
不過你會發現,如果這麼修改,在(修改後的)第一個紅框執行的時候,array[low]始終等於array[index],而(修改後的)第二個紅框執行的時候,array[high]始終等於array[index],這就是為什麼源碼中不需要采用交換的原因(交換是3次賦值,比較浪費時間)。

cxsmarkchan
kiansoung
kiansoung
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved