Chia sẻ kiến thức ngôn ngữ lập trình C, C++, C#, Java, Python, PHP, JS, SQL ...
Các điều hành viên: Mod, SMod, Admin
#4 » gửi bởi nghiammo1992 » 12/09/2021 12:36 » @523439
Thuật toán sắp xếp trộn Merge Sort (nên ưu tiên dùng thuật toán Quick Sort hơn)- Mã: Chọn tất cả
using namespace std;
void merge(int arr[], int l, int m, int r)
{
int i, j, k;
int n1 = m - l + 1;
int n2 = r - m;
int L[n1], R[n2];
for (i = 0; i < n1; i++)
L[i] = arr[l + i];
for (j = 0; j < n2; j++)
R[j] = arr[m + 1+ j];
i = 0; j = 0; k = l; while (i < n1 && j < n2)
{
if (L[i] <= R[j])
{
arr[k] = L[i];
i++;
}
else
{
arr[k] = R[j];
j++;
}
k++;
}
while (i < n1)
{
arr[k] = L[i];
i++;
k++;
}
while (j < n2)
{
arr[k] = R[j];
j++;
k++;
}
}
void mergeSort(int arr[], int l, int r)
{
if (l < r)
{
int m = l+(r-l)/2;
mergeSort(arr, l, m);
mergeSort(arr, m+1, r);
merge(arr, l, m, r);
}
}
int main()
{
int arr[] {32,71,12,45,26,80,53,33,-7,99,1,5,2,-3,-100};
int n = sizeof(arr) / sizeof(arr[0]); mergeSort(arr, 0, n-1);
cout << "So luong phan tu trong mang: " << n << endl;
for (int i : arr) {
cout << i << " ";
}
return 0;
}
-
nghiammo1992
- Rank:
- Cấp độ: 💚15💚
- Tu luyện: ☀️2/30☀️
- Like: 4355/14760
- Online: ✨1/5359✨
- Bang hội: Tiếu Ngạo
- Xếp hạng Bang hội: ⚡5/46⚡
- Level: ⭐75/1227⭐
- Chủ đề đã tạo: 🩸4141/4141🩸
- Tiền mặt: 295 Xu
- Ngân hàng: 5 Xu
- Nhóm: Admin
- Danh hiệu: ⚝⚝⚝Truyền Thuyết⚝⚝⚝
- Giới tính:
- Ngày tham gia: 08/03/2012 10:56
- Đến từ: Hà Giang
- Thiết bị: Nokia N96
- Số điện thoại: 0367790762
- (Google Chrome 94.0.460)
-
Quay về C, C++, C#, Java, Python, PHP, JS, SQL ...