[华为机试练习题]21.二维数组的列排序
来源:互联网 发布:python开源什么意思 编辑:程序博客网 时间:2024/05/06 16:21
题目
描述: 给出一个二维数组,请将这个二维数组按第i列(i从1开始)排序,如果第i列相同,则对相同的行按第i+1列的元素排序,如果第i+1列的元素也相同,则继续比较第i+2列,以此类推,直到最后一列。如果第i列到最后一列都相同,则按原序排列。 实现以下接口:输入一个m*n 的整数数组,实现按规则排列,返回排列后的数组。调用者会保证:比如输入数组为: 1,2,32,3,42,3,11,3,1按第二列排序: 输出: 1,2,32,3,11,3,12,3,4练习阶段: 初级
代码
/*---------------------------------------* 日期:2015-06-30* 作者:SJF0115* 题目:二维数组的列排序* 来源:华为上机-----------------------------------------*/#include <vector>#include <algorithm>#include "oj.h"using namespace std;// 功能:排列一个m行n列 大小的数组// 输入: int * pArray 指向数组第一个元素的指针,m为行数, n为列数 ,请按第i列排列// 输出:按第i列排序完成后的数组放到入参指定的地址中 (i的取值范围 1 - n) // 返回:int sortIndex = 0;int col = 0;// 按列排序bool cmp(const vector<int> &a, const vector<int> &b){ for(int i = sortIndex - 1;i < col;++i){ if(a[i] == b[i]){ continue; }//for else{ return a[i]<b[i]; }//else }//for return a[col-1] < b[col-1];}void RangeArray(int * pArray,unsigned int m, unsigned int n,unsigned int i){ if(pArray == NULL || m <= 0 || n <= 0 || i >= n){ return; }//if sortIndex = i; col = n; // 一行 vector<int> rowVec; vector<vector<int>> matrix; int *array = pArray; // 存放在vector for(int i = 0; i < m; i++){ for(int j = 0; j < n; j++){ rowVec.push_back(*array); array++; }//for matrix.push_back(rowVec); rowVec.clear(); }//for // 排序 sort(matrix.begin(),matrix.end(),cmp); // 排序后的数据放入pArray array = pArray; for(int i = 0; i < m;++i){ for(int j = 0;j < n;++j){ *array = matrix[i][j]; array++; }//for }//for}
1 0
- [华为机试练习题]21.二维数组的列排序
- 二维数组的列排序
- 二维数组的列排序
- 二维数组的列排序
- 二维数组的列排序
- 二维数组的列排序
- 二维数组的列排序
- 华为机试—二维数组列最小值
- 华为上机练习题--比较二维数组列最小值,组成一个新数组返回
- 二维数组列排序
- 对二维数组的行、列排序
- [华为机试练习题]6.整数排序
- 二维数组排序--指定数组列排序
- 华为机试---找出二维数组各维的最小值
- 华为机试---二维数组打印
- 华为机试题----比较二维数组列最小值,组成一个新数组返回
- [华为机试练习题]12.整型字符串排序
- [华为机试练习题]56.求子数组的最大和
- JavaScript权威指南_115_第15章_脚本化文档_15.2-选取文档元素-通过标签名选取元素
- jni内存释放
- 枚举的用法
- mongodb 学习笔记 01 -- 概述,安装,运行
- Java中的参数传递方式
- [华为机试练习题]21.二维数组的列排序
- DateDiff 函数——计算两个日期之间的时间间隔
- android手机之-------64位操作系统 与 64位处理器
- JSONArray构造方法在不同API上的区别
- CI源码分析(四)—DB查询缓存
- springmvc+spring+jpa(hibernate)+redis+maven配置
- textField.placeholder 设置颜色
- 【hadoop】14、hadoop2.5的mapreduce的 配置
- C++中函数指针的使用