奥运金牌旁行榜

编程入门 行业动态 更新时间:2024-10-06 12:19:42

<a href=https://www.elefans.com/category/jswz/34/1763802.html style=奥运金牌旁行榜"/>

奥运金牌旁行榜

奥运金牌旁行榜

  • 我的算法
  • 比较简单的做法
  • Arrays.sort自定义排序规则

我的算法

比较低效率的一种方法
二维数组{{1,2,3},{2,3,1}}
三次外层循环从最后一位开始循环排序,排序内部(如果后面比前面大,才交换)

	static void test(int [][] data){int[] sign = new int[data.length];for (int j = 2;j>=0;j--){for (int i = 0; i < data.length; i++) {sign[i] = data[i][j];}BubbleSort(sign,data);}for (int i = 0; i < data.length; i++) {System.out.println(Arrays.toString(data[i]));}}public static void BubbleSort(int[] arr,int [][] data) {int temp;//定义一个临时变量int[] temp1 = new int[data.length];for(int i=0;i<arr.length-1;i++){//冒泡趟数for(int j=0;j<arr.length-i-1;j++){if(arr[j+1]>arr[j]){temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;temp1 = data[j];data[j] = data[j+1];data[j+1] = temp1;}}}}

比较简单的做法

只需要两层循环就可以实现该功能
通过if else if实现判断 如果内层循环走完 flag发生了改变 就交换数组

	static void miaoA(int [][] data){for (int i = 0; i < data.length; i++) {int flag = i;for (int j = i + 1;j< data.length;j++){if (data[flag][0]<data[j][0]){flag = j;}else if (data[flag][0] == data[j][0] && data[flag][1] < data[j][1]){flag = j;}else if (data[flag][0] == data[j][0] && data[flag][1] == data[j][1] && data[flag][2] < data[j][2]){flag = j;}}if (flag != i){}}}

Arrays.sort自定义排序规则

利用Arrays.sort自定义排序规则(类似于上一个方法)

		Arrays.sort(data,(o1,o2) -> {if(o1[0]!=o2[0]){return o2[0]-o1[0];}else if(o1[1]!=o2[1]){return o2[1]-o1[1];}else{return o2[2]-o1[2];}});

更多推荐

奥运金牌旁行榜

本文发布于:2024-02-14 14:05:26,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1763563.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:奥运金牌   旁行榜

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!