Code lỗi về Insertion Sort
Em đang làm bài Insertion Sort, mỗi bước insert thì hãy in ra mảng, đây là code:
void Insert(vector<int> arr, int rightIndex, int key)
{
int i;
for(i = rightIndex; i >= 0 && arr[i] > key; i--){
arr[i + 1] = arr[i];
}
arr[i+1] = key;
}
void InsertionSort(vector<int> arr)
{
for(int i = 1; i < arr.size(); i++){
Insert(arr, i - 1, arr[i]);
Output(arr);
}
}
Input
6
1 4 3 5 6 2
Output mong muốn
1 4 3 5 6 2
1 3 4 5 6 2
1 3 4 5 6 2
1 3 4 5 6 2
1 2 3 4 5 6
Output thực tế
1 4 3 5 6 2
1 4 3 5 6 2
1 4 3 5 6 2
1 4 3 5 6 2
1 4 3 5 6 2
Em mới biết cách dùng sơ sơ vector, nhưng chưa biết rõ
Em thử demo = C# với thuật toán y như thế, chỉ khác là dùng mảng, và thành công.
Vì vậy em nghĩ code em sai có thể là do em dùng vector không đúng.
Mà khổ là em lại không biết debug vector :’(
Mọi người xem giúp em với
Cám ơn ạ
Là vector thì cũng cần truyền kiểu tham chiếu
phải có tham chiếucho i chạy từ 0 thử xem sao(nhầm)Bạn thử như bạn này xem sao, truyền tham chiếu thì mới in ra mảng thay đổi giá trị được. Truyền tham số thì ra khỏi hàm vector đó vẫn không thay đổi giá trị đâu.