我正在尝试用 rust 实现快速排序算法,问题是,我有一个名为“ i ”的 var,它用作迭代器,但首先,它的值为“-1”,并且我无法将其设置为使用 isize 类型,因为它是负数,但我也无法将其设置为 isize 类型,因为 isize 类型不能用作索引。
分区函数:
fn partition(arr: &mut [isize], low: usize, high: usize) -> usize {
let mut i: usize = low - 1; // when changed to isize, I do not encounter any errors but the algorithm itself doesnt work like it should.//
let mut j: usize = low;
let pivot: isize = arr[high];
while j < high {
if arr[j] <= pivot {
i += 1;
arr.swap(i, j);
}
j …Run Code Online (Sandbox Code Playgroud) 我知道Box是一个分配在堆上的智能指针。所以我可以使用 Box 将原始堆栈分配数组转换为“动态”堆分配数组。但是就创建数据结构而言,比如说树,为什么我需要装箱指针?