首页 > 软件资讯 > 正文

java二维数组排序,java二维数组只对每行的数据进行排序

2020-05-16 17:03:57  来源:http://www.capsicumpm.com  编辑:admin

Java通过几种经典的算法来实现数组排序

JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法。快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现。冒泡法是运用遍历数组进行比较,通过不断的比较将最小值或者最大值一个一个的遍历出来。选择排序法是将数组的第一个数据作为最大或者最小的值,然后通过比较循环,输出有序的数组。插入排序是选择一个数组中的数据,通过不断的插入比较最后进行排序。下面我就将他们的实现方法一一详解供大家参考。<1>利用Arrays带有的排序方法快速排序public class Test2{ public static void main(String[] args){ int[] a={5,4,2,4,9,1}; Arrays.sort(a); //进行排序 for(int i: a){ System.out.print(i); } } }<2>冒泡排序算法public static int[] bubbleSort(int[] args){//冒泡排序算法 for(int i=0;i<args.length-1;i++){ for(int j=i+1;j<args.length;j++){ if (args[i]>args[j]){ int temp=args[i]; args[i]=args[j]; args[j]=temp; } } } return args; }<3>选择排序算法public static int[] selectSort(int[] args){//选择排序算法 for (int i=0;i<args.length-1 ;i++ ){ int min=i; for (int j=i+1;j<args.length ;j++ ){ if (args[min]>args[j]){ min=j; } } if (min!=i){ int temp=args[i]; args[i]=args[min]; args[min]=temp; } } return args; }<4>插入排序算法public static int[] insertSort(int[] args){//插入排序算法 for(int i=1;i<args.length;i++){ for(int j=i;j>0;j--){ if (args[j]<args[j-1]){ int temp=args[j-1]; args[j-1]=args[j]; args[j]=temp; }else break; } } return args; }

用new分配一个二维数组a[6][6],从键盘输入元素值,求出数组中的最大元素及下标。

main(){int *a,max,h,l,i,j;a=new(sizeof(int)*6*6);for(i=0;i<6;i++)for(j=0;j<6;j++)cin>>a[i][j];max=a[0][0],h=0,l=0;for(i=0;i<6;i++)for(j=0;j<6;j++){if(a[i][j]>max) {max=a[i][j];h=i;l=j;}}cout<<"max="cout<<max<<"\n";cout<<"hang="<<cout<<h"\n";cout<<"lei="<<cout<<l"\n";}

java习题 求二维数据的排序 平均值

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;public class Table { static ArrayList table = new ArrayList(); public static void setTable(){ BufferedReader br ; String flag; try { do{ System.out.println("==============初始化数据================"); System.out.println("请选择:"); System.out.println("1.添加"); System.out.println("2.停止添加"); br = new BufferedReader(new InputStreamReader(System.in)); flag = br.readLine(); if("1".equals(flag)){ System.out.println("请输入数字用\",\"隔开"); br = new BufferedReader(new InputStreamReader(System.in)); String s_numbers = br.readLine(); String[] s_number = s_numbers.split(","); ArrayList row = new ArrayList(); for(int i =0; i < s_number.length; i++){ row.add(Integer.parseInt(s_number[i])); } table.add(row); } }while(!"2".equals(flag)); System.out.println("你录入的数据为"); for(int i =0; i < table.size(); i++){ ArrayList row = (ArrayList) table.get(i); for(int j = 0; j< row.size(); j++){ System.out.print(((Integer)row.get(j)).intValue()+" "); } System.out.println(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void select(){ BufferedReader br ; System.out.println("==============排列数据================"); System.out.println("请选择:"); System.out.println("1.按行排列 并计算平均值"); System.out.println("2.按列排列 并计算平均值"); br = new BufferedReader(new InputStreamReader(System.in)); try { String flag = br.readLine(); if("1".equals(flag)){ System.out.println("请输入第几行"); br = new BufferedReader(new InputStreamReader(System.in)); int number = Integer.parseInt(br.readLine()); byrow(number); } if("2".equals(flag)){ System.out.println("请输入第几列"); br = new BufferedReader(new InputStreamReader(System.in)); int number = Integer.parseInt(br.readLine()); bycolum(number); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void byrow(int number){ ArrayList row = (ArrayList) table.get(number-1); Object[] obj = row.toArray(); int sum = 0; for(int i =0; i<obj.length ; i++){ for(int j =i+1; j<obj.length ; j++){ int value1 =((Integer)obj[i]).intValue(); int value2 =((Integer)obj[j]).intValue(); if(value1>value2){ obj[j]=value1; obj[i]=value2; } } } for(int k =0; k<obj.length ; k++){ sum = sum + ((Integer)obj[k]).intValue(); System.out.print(((Integer)obj[k]).intValue()+" "); } double pinjun = sum/(double)obj.length; System.out.println(""); System.out.println("========================================="); System.out.println("总共"+obj.length+"个数字 总和:"+sum+ "平均值等于:" +pinjun); } public static void bycolum(int number){ ArrayList value = new ArrayList(); for(int j = 0 ; j < table.size(); j++){ //取列值 if(((ArrayList)table.get(j)).size() > number){ //判断是否越界 value.add(((ArrayList)table.get(j)).toArray()[number-1]); } } Object[] obj = value.toArray(); int sum = 0; for(int i =0; i<obj.length ; i++){ for(int j =i+1; j<obj.length ; j++){ int value1 =((Integer)obj[i]).intValue(); int value2 =((Integer)obj[j]).intValue(); if(value1>value2){ obj[j]=value1; obj[i]=value2; } } } for(int k =0; k<obj.length ; k++){ sum = sum + ((Integer)obj[k]).intValue(); System.out.print(((Integer)obj[k]).intValue()+" "); } double pinjun = sum/(double)obj.length; System.out.println(""); System.out.println("========================================="); System.out.println("总共"+obj.length+"个数字 总和:"+sum+ "平均值等于:" +pinjun); } public static void main(String args[]){ setTable(); select(); }}

用JAVA输入一个二维数组a[3][4]的元素值,求输出其元素最大值

这才是懂你的代码:public void Class Test{public static void main(String ar[]){ testArray();}/*** java定义一个3行4列的二维整数数组,* 从键盘输入数组中的每一个整数,* 然后找出数组中的最大值,* 输出该值及其行下标和列下标**/public static void testArray() {int[][] array = new int[3][4];int max = 0;int row = 0, col = 0;Scanner s=new Scanner(System.in);//从键盘输入数组元素for (int i = 0; i < array.length; i++) {for (int j = 0; j < array[i].length; j++) {System.out.println("请输入元素a["+i+"]["+j+"]的值:");array[i][j] = s.nextInt();}}//遍历数组取最大值,并取得下标for (int i = 0; i < array.length; i++) {for (int j = 0; j < array[i].length; j++) {if (max < array[i][j]) {max = array[i][j];row = i;col = j;}}}System.out.println("最大值为" + max + ",位于行下标" + row + ",列下标"+ col);}}亲,记得采纳哦!

JAVA中按分数高低对同学进行排序二维数组

importjava.util.Scanner;publicclassT1{staticString[]Names={"张三丰","郭靖","乔峰","张无忌","杨过"};staticString[]cNames={"Java","C++","Oracle","Android"};staticint[][]score={{87,76,63,98},{67,79,83,75},{90,76,65,60},{84,88,63,79},{72,66,58,77},};staticvoidswap(inta,intb){intt;Stringname;for(inti=0;i<score[a].length;i++){t=score[a][i];score[a][i]=score[b][i];score[b][i]=t;}name=Names[a];Names[a]=Names[b];Names[b]=name;}publicstaticvoidmain(Stringargv[]){System.out.println("选择排序科目:\n1.Java.\n2.C++\n3.Oracle\n4.Android\n");Scannersc=newScanner(System.in);intchoice=0;while(choice<=0||choice>4){choice=sc.nextInt();}sc.close();for(inti=0;i<score.length-1;i++){for(intj=0;j<score.length-1-i;j++){if(score[j][choice-1]<score[j+1][choice-1]){swap(j,j+1);}}}for(inti=0;i<Names.length;i++){System.out.printf("%s,%d,%d,%d,%d\n",Names[i],score[i][0],score[i][1],score[i][2],score[i][3]);}}}