对数据排序,不知道哪里错了,求教高手
#include <cstdlib>#include <iostream>using namespace std;// 冒泡排序,对数组data排序/* \param data 要排序的数组 row行,3列 \param CountArray 数组data的统计信息 count行,2列 \param ResData 与数组data对应的相似度信息 1行,row列 \param row data的行数,ResData的列数 \param count CountArray的行数 根据ResData和CountArray数据对data进行冒泡排序*/void Sort_D_F(int **data, int **CountArray, double *ResData, int row, int count){ int temp[3] = {0, 0, 0}; // 临时变量 int i, j, k, t; static int m = 0; for(t=0; t<count; t++) { for(i=0; i<CountArray[t][1]-1; i++) { for(j=0; j<CountArray[t][1]-i-1; j++) { if((m+j) == row-1) break; if(ResData[m+j] > ResData[m+j+1]) { for(k=0; k<3; k++) { temp[k] = data[m+j][k]; data[m+j][k] = data[m+j+1][k]; data[m+j+1][k] = temp[k]; } } } } }}int main(){ int i, j; int **data, **CountArray; double *ResData; int row = 12, count = 5; data = new int*[row]; for(i=0; i<row; i++) data[i] = new int[3]; CountArray = new int*[count]; for(i=0; i<count; i++) CountArray[i] = new int[2]; ResData = new double[row]; // 测试数据 int D[12][3] = {{1,88,1},{2,137,2},{3,34,3},{3,111,3},{3,149,3},{4,31,4},{4,59,4}, {5,25,5},{5,38,5},{5,67,5},{5,106,5},{5,167,5}}; double R[12] = {1,1,0.878183,0.634459,0.697758,0.771256,0.818767,0.490358,0.491005,0.481679,0.551321,0.470729}; int C[5][2] = {{1,1},{2,1},{3,3},{4,2},{5,5}}; // 将测试数据拷贝到相应的变量 for(i=0; i<row; i++) { ResData[i] = R[i]; for(j=0; j<3; j++) data[i][j] = D[i][j]; } for(i=0; i<count; i++) { for(j=0; j<2; j++) CountArray[i][j] = C[i][j]; } cout << "Data: ResData" << endl; for(i=0; i<row; i++) { for(j=0; j<3; j++) cout << data[i][j] << " "; cout << ResData[i] << endl; } cout << "CountArray: " << endl; for(i=0; i<count; i++) { for(j=0; j<2; j++) cout << CountArray[i][j] << " "; cout << endl; } // 调用排序函数 Sort_D_F(data, CountArray, ResData, row, count); // 打印排序后的data数据 cout << "Data: ResData" << endl; for(i=0; i<row; i++) { for(j=0; j<3; j++) cout << data[i][j] << " "; cout << endl; } // 释放内存空间 delete[] CountArray; delete[] ResData; delete[] data; system("pause"); return 0;}/*data 数据如下[{1,88,1},{2,137,2},{3,34,3},{3,111,3},{3,149,3},{4,31,4},{4,59,4},{5,25,5},{5,38,5},{5,67,5},{5,106,5},{5,167,5}];ResData数据如下:{1,1, 0.878183, 0.634459, 0.697758, 0.771256,0.818767, 0.490358,0.491005,0.481679, 0.551321,0.470729};CountArray数据如下{{1,1},{2,1},{3,3},{4,2},{5,5}}用此例子: row = 12, count = 5*/