Hi,
I create my own QuickSort implementation but sometimes when i start code i have problem with index.
I have 200 size vector but my code show very big index and program panic, and i dont know how to solve it.
Its link to my code.
Hi,
I create my own QuickSort implementation but sometimes when i start code i have problem with index.
I have 200 size vector but my code show very big index and program panic, and i dont know how to solve it.
Its link to my code.
Casting the i32 value of -1 to an usize results in 18446744073709551615. Is that by any chance the number you got? You will have to check whether the pivot - 1
or pivot + 1
operations end up outside the array and handle that properly
Some general advice:
Vec
.return
in partition
. (using clippy would have caught this)Thanks for help ;D Everything work corectly now
This part might cause issues if the pivot is a value larger than isize can carry.
if pivot as isize - 1 < 0 || pivot + 1 > arr.len(){
return;
}
I believe the following might do what you want without the cast to isize.
if pivot < 1 || pivot + 1 > arr.len(){
return;
}
You are right, i change this, and i had to divide this if to one case if and call the recursion.
This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.