尝试用 Swift 编写以下快速排序算法有一段时间了,但无法解决该问题。[快速排序,因为数组中有大约 15,000 个实际值]。问题是只有数组的左半部分是有序的(见图),并且该方法永远不会退出(无限循环)。从http://www.java2novice.com/java-sorting-algorithms/quick-sort/进行 Java 转换(在 Java 中测试并确实有效)。无法解决错误。
var arr = [Int]()
var length = 0
override func viewDidLoad()
{
super.viewDidLoad()
arr = [5,2,4,7,2,1,3,9,10,11,7,8]
print(arr)
sort(inputArr: &arr);
print(arr)
}
func sort(inputArr: inout [Int])
{
if (inputArr.count == 0) || (inputArr == nil)
{
print("finished")
return
}
arr = inputArr
length = arr.count
quicksort(low:0,high:length-1)
}
func quicksort(low: Int, high: Int)
{
var i = low
var j = high
var piv = (low + (high-low))
piv = piv …Run Code Online (Sandbox Code Playgroud)