归并排序求助
  • 板块学术版
  • 楼主Novicelpx
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/14 17:55
  • 上次更新2025/1/14 21:41:17
查看原帖
归并排序求助
189912
Novicelpx楼主2025/1/14 17:55

代码

#include <iostream>
using namespace std;
void Ms(double A[], int left, int right) {
    if (right > left) {
        Ms(A, left, (left + right) / 2);
        Ms(A, (left + right) / 2 + 1, right);
    }
    int n1 = (right - left + 1) / 2 + 1;
    int n2 = (right - left + 1) / 2;
    double L[n1];
    double R[n2];
    for (int i = 0; i < n1; i++) L[i] = A[left + i];
    for (int i = 0; i < n2; i++) R[i] = A[(left + right) / 2 + 1 + i];
    int il = 0;
    int ir = 0;
    int k = left;
    while (il < n1 && ir < n2) {
        if (L[il] < R[ir]) {
            A[k++] = L[il++];
        } else {
            A[k++] = R[ir++];
        }
    
    	for(int i=0;i<10;i++)cout << A[i] << " ";
    	cout<<""<<endl;
    }
    while (il < n1) {
        A[k++] = L[il++];
    for(int i=0;i<10;i++)cout << A[i] << " ";cout<<""<<endl;}
    while (ir < n2) {
        A[k++] = R[ir++];
    for(int i=0;i<10;i++)cout << A[i] << " ";cout<<""<<endl;}
}
int main()
{
	double a[10]={52,62,4,5,5,31,7,36,81,3};
	Ms(a,0,9);
	for(int i=0;i<10;i++)cout << a[i] << " ";
	return 0;
}

输出

52 62 4 5 5 31 7 36 81 3 
52 62 4 5 5 31 7 36 81 3 
52 62 4 5 5 31 7 36 81 3 
52 62 4 5 5 31 7 36 81 3 
52 62 62 5 5 31 7 36 81 3 
52 62 62 5 5 31 7 36 81 3 
52 62 62 5 5 31 7 36 81 3 
52 62 62 5 5 31 7 36 81 3 
52 62 62 5 5 31 7 36 81 3 
52 62 62 5 5 31 7 36 81 3 
52 62 62 5 5 31 7 36 81 3 
52 62 62 5 5 31 7 36 81 3 
52 62 62 5 5 31 7 36 81 3 
52 62 62 5 5 5 7 36 81 3 
5 62 62 5 5 5 7 36 81 3 
5 5 62 5 5 5 7 36 81 3 
5 5 52 5 5 5 7 36 81 3 
5 5 52 62 5 5 7 36 81 3 
5 5 52 62 62 5 7 36 81 3 
5 5 52 62 62 5 7 36 81 3 
5 5 52 62 62 5 7 36 81 3 
5 5 52 62 62 5 7 36 81 3 
5 5 52 62 62 5 7 36 81 3 
5 5 52 62 62 5 7 7 81 3 
5 5 52 62 62 5 7 7 81 3 
5 5 52 62 62 5 7 7 81 3 
5 5 52 62 62 5 7 7 81 3 
5 5 52 62 62 5 7 7 81 3 
5 5 52 62 62 5 7 7 81 3 
5 5 52 62 62 5 7 7 81 3 
5 5 52 62 62 5 7 7 3 3 
5 5 52 62 62 5 7 7 3 81 
5 5 52 62 62 5 7 7 3 81 
5 5 52 62 62 3 7 7 3 81 
5 5 52 62 62 3 5 7 3 81 
5 5 52 62 62 3 5 7 3 81 
5 5 52 62 62 3 5 7 7 81 
5 5 52 62 62 3 5 7 7 81 
3 5 52 62 62 3 5 7 7 81 
3 5 52 62 62 3 5 7 7 81 
3 5 5 62 62 3 5 7 7 81 
3 5 5 5 62 3 5 7 7 81 
3 5 5 5 7 3 5 7 7 81 
3 5 5 5 7 7 5 7 7 81 
3 5 5 5 7 7 52 7 7 81 
3 5 5 5 7 7 52 62 7 81 
3 5 5 5 7 7 52 62 62 81 
3 5 5 5 7 7 52 62 62 3 
3 5 5 5 7 7 52 62 62 3 
3 5 5 5 7 7 52 62 62 3 

有点不熟悉这个排序,找不见错误,求大佬帮帮

2025/1/14 17:55
加载中...