不改变数组原有顺序按序输出数组
来源:互联网 发布:mac系统无guid分区重装 编辑:程序博客网 时间:2024/04/19 09:47
//解决了数组不打乱排序的问题import java.util.*;public class WorkHours{ public static void main(String[] args) { Scanner input = new Scanner(System.in); int[][] hours = new int[8][8]; for(int i=0;i<8;i++) for(int j=0;j<7;j++) { hours[i][j] = input.nextInt(); hours[i][7] += hours[i][j]; } int[] sums = new int[8];//将带待排序内容放入另一个数组,排序 for(int i=0;i<8;i++) sums[i] = hours[i][7]; sort(sums); for(int i=7;i>=0;i--) { for(int j=0;j<8;j++)//按排好序的数组查找遍历原目标数组 { if(sums[i] == hours[j][7]) { System.out.println(j+ " "+hours[j][7]);}//易发生多次扫描 } } } public static void sort(int [] sums) { for(int i=0;i<7;i++) { int currentMin = sums[i]; int currentMinIndex = i; for(int j=i+1;j<8;j++) { if(currentMin<sums[j]) { currentMin = sums[j]; currentMinIndex = j; } } if(currentMinIndex != i) { sums[currentMinIndex] = sums[i]; sums[i] = currentMin; } } for(int i=0;i<4;i++)//倒序 { int temp = sums[i]; sums[i] = sums[7-i]; sums[7-i] = temp; } for(int i=0;i<7;i++) { if(sums[i]==sums[i+1]) sums[i]=-1;//重复元素置-1,防止多次扫描 } }}
《Java语言程序设计 基础篇》(机械工业出版社 原书第十版)习题8.3
阅读全文
0 0
- 不改变数组原有顺序按序输出数组
- 不增加数组空间按原有顺序先输出字母再输出数字
- 一维数组的逆序输出(情况一:仅输出时发生改变,数组元素位置不发生改变、情况二:将顺序数组改为逆序数组)
- 数组去重复元素-(不保证与原有数据顺序一致)
- 不改变正负数相对顺序重新排列数组
- 不改变正负数相对顺序重新排列数组
- 不改变正负数之间相对顺序重新排列数组
- 不改变正负数之间相对顺序重新排列数组
- 对给定数组按奇偶性划分,不改变相对顺序
- java数组实现去重且不改变原先顺序
- 顺序输出数组
- c++ hash_set 删除原数组重复数据,且不改变原数组顺序
- 求数组中的第二大的数(不改变数组的顺序)
- 一个无序的数组,在不改变数组内部值的情况下,输出排好序的数组
- json顺序输出 跟数组顺序不一致
- C#控制台基础 File.AppendAllLines,以追加的方式,即不改变txt中的原有内容,在后面添加一维string数组的内容
- 不借助二维数组,输出蛇形数组
- 不改变正负数相对顺序重新排列数组----一种解法
- Hbase单机版测试
- Iterator迭代器
- ThingInJava-IO笔记(IO)
- 初学acmer--《算法竞赛经典入门》笔记(九) P52-53
- c语言初步经典题4----求圆柱体的表面积
- 不改变数组原有顺序按序输出数组
- java中多线程以及常见问题总结
- 字符串逆序翻转
- 网站机器和游戏服务器的选择
- Django(1)--blogproject项目创建
- 进程与线程的一个简单解释
- nginx概念与使用
- Leetcode 64. Minimum Path Sum
- 个人微信接入图灵机器人(python版)