Praying / RustBackyard

用于Rust编程后花园交流群发帖讨论交流
16 stars 3 forks source link

为什么不能打印data[1]的值 #9

Closed w1991668899 closed 3 years ago

w1991668899 commented 3 years ago

fn main() { // let v = vec![0; 10]; // println!("{:?}", v); //[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] // println!("{:?}", v[(1 + 2) >> 1]); let mut data = Vec::new(); data.push(300); data.push(100); data.push(200); println!("{}", data[0]); quick_sort(&mut data, 0, data.len() - 1); }

fn quick_sort(data: *mut Vec, l: usize, r: usize) { if l >= r { return; } println!("{}", data[1]); }

Praying commented 3 years ago

替你美化一下代码

fn main() {
    // let v = vec![0; 10];
    // println!("{:?}", v); //[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    // println!("{:?}", v[(1 + 2) >> 1]);
    let mut data = Vec::new();
    data.push(300);
    data.push(100);
    data.push(200);
    println!("{}", data[0]);
    quick_sort(&mut data, 0, data.len() - 1);
}

fn quick_sort(data: *mut Vec<isize>, l: usize, r: usize) {
    if l >= r {
        return;
    }
    println!("{}", data[1]);

    // let mut point = data[(l + r - 2)];
    //
    // let mut i = l - 1;
    // let mut j = r + 1;
    // while i < j {
    //     loop {
    //         i -= 1;
    //         if data[i] >= point {
    //             break;
    //         }
    //     }
    //     loop {
    //         j += 1;
    //         if data[j] <= point {
    //             break;
    //         }
    //     }
    //     if i < j && data[i] > data[i] {
    //         // unsafe {
    //         //     data.swap(i, j);
    //         // }
    //     }
    // }
    // quick_sort(data, l, j);
    // quick_sort(data, j + 1, r);
}
w1991668899 commented 3 years ago

thank you!!!

ghtz08 commented 3 years ago

你的函数签名用这个应该更合适

fn quick_sort(data: &mut Vec<isize>, l: usize, r: usize)
MATRIXKOO commented 3 years ago

Solved