java数组排序(冒泡直排)反转
Posted superficial。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java数组排序(冒泡直排)反转相关的知识,希望对你有一定的参考价值。
package lianxi; public class maopao { public static void main(String[] args){ int[] i=new int[]{45,67,54,35,26,76,85}; for(int a=0;a<i.length;a++){ for(int b=0;b<i.length;b++){ if(i[a]<i[b]){ int temp=i[a]; i[a]=i[b]; i[b]=temp; } } }go(i); } public static void go(int[] l){ for(int o=0;o<l.length;o++){ System.out.print(l[o]+" "); } } }
冒泡排序就是用两个for循环第一层循环每一次循环拿一个数然后用第二个循环跟数组中的其他数进行比较,直到循环结束,排序就完成了。
package day24; //直接排序 public class paixu { public static void main(String[] args){ int[] i=new int[]{45,35,67,86,46,25,47,37,85};// for(int m=0;m<i.length;m++){ int indexmax=m; for(int n=m+1;n<i.length;n++){ if(i[indexmax]<i[n]){ indexmax=n;//把循环中第一个索引换成了最大值的索引 } } int temp=i[m]; i[m]=i[indexmax];//把最大值赋给循环中第一个值。 i[indexmax]=temp;//把第一个值放在其他位置 } xunhuan(i); } public static void xunhuan(int[] t){ for (int l=0;l<t.length;l++){ System.out.println(t[l]);} }}
直接排序就是直接拿数去比较完就放到应该放到的位置上,直到循环结束
package lianxi; //反转排序 public class fanzhuan { public static void main(String[] args){ int[] i=new int[]{5,4,8,3,9,5,23}; int lm=i.length; for(int a=0;a<lm/ 2;a++){ int temp=i[i.length-a-1]; i[i.length-a-1]=i[a]; i[a]=temp; } go(i); } public static void go(int[] s){ for(int b=0;b<s.length;b++){ System.out.println(s[b]); } } }
数组的反转,让循环的次数小于数组长度的一半,然后让循环次数对应的索引值的数组值跟对着的数交换就好了。
package lianxi; public class ShuZu { String[] xzName = { "白羊", "金牛", "双子", "巨蟹", "狮子", "处女", "天秤", "天蝎", "射手", "摩羯", "水瓶", "双鱼" }; String[] xzDate = { "03月21日─04月20日", "04月21日─05月20日", "05月21日─06月21日", "06月22日─07月22日", "07月23日─08月22日", "08月23日─09月22日", "09月23日─10月22日", "10月23日─11月21日", "11月22日─12月21日", "12月22日─01月19日", "01月20日─02月18日", "02月19日─03月20日" }; } package lianxi; import java.util.Scanner; public class TestShuzu { public static void main(String[] args){ ShuZu sz=new ShuZu(); Scanner sc=new Scanner(System.in); System.out.println("请输入星座名字,并用逗号隔开"); String X_name=sc.nextLine(); if(X_name.length()==2){ for(int i=0;i<sz.xzName.length;i++){ if(X_name.equals(sz.xzName[i])){//属性.equals就是指的属性的值 System.out.print(sz.xzDate[i]); } } } else if(X_name.length()>2){ String[] y=X_name.split(","); for(int w=0;w<y.length;w++){ String ow = null; for(int q=0;q<sz.xzName.length;q++){ if(y[w].equals(sz.xzName[q])){ ow=sz.xzDate[q]; } } System.out.println(ow); } } sc.close(); } }
输入星座名,输入对应的月份,可以输入多个星座查询,主要是得想到string可以用split方法分割成几个数组
以上是关于java数组排序(冒泡直排)反转的主要内容,如果未能解决你的问题,请参考以下文章
shell脚本——数组的应用及排序算法(冒泡直接反转希尔排序)