快速排序本身并不难,难在用汇编语言实现,难点主要在汇编的递归实现
可以先用高级语言编写,然后对照着改写成汇编
高级语言实现
const quickSort = (arr) => {
const sort = (arr, left = 0, right = arr.length - 1) => {
if (left >= right) {
return
}
let [ i, j ] = [ left, right ]
const key = arr[i] // 第一个设为基准,从后向前开始
// 若最后一个为基准,从前向后找
// console.log(i,j);
while( i < j ) {
while (i < j && arr[j] >= key) {
j--
}
arr[i] = arr[j] // 直接赋值提高效率的方式,若要随机选择基准值则该行需使用“交换”
while (i < j && arr[i] <= key) {
i++
}
arr[j] = arr[i]
}
arr[i] = key // 归位操作
// console.log(arr);
sort(arr, left, i - 1)
sort(arr, i + 1, right)
}
const newArray = arr.concat()
sort(newArray)
return newArray
}
const a = [61,