数组排序 与Arrays工具类
反转 冒泡排序,Arrays工具类的应用
public class Paixu { //反转排序 public static void main(String[] args) { int arr [] = {2,1,5,6,9,7,4}; //长度为7 // 0 1 2 3 4 5 6 for( int i = 0; i<arr.length/2;i++) { int temp = arr[i]; arr[i] = arr[arr.length - i - 1]; arr[arr.length - i - 1] = temp; }//2与4换,1与7换,5与9换 p(arr); //冒泡排序 int attr [] = {9,8,7,6,5,4,3,20,100}; for(int i=0;i<attr.length-1;i++) { for(int j=0;j<attr.length-1;j++) { if(attr[j]<attr[j+1]) //从大到小的顺序排列 { int zj = attr[j]; attr[j] = attr[j+1]; attr[j+1] = zj; } } } p(attr); //此工具类要引入 Arrays.sort(arr); //按从小到大的顺序排列出来 Arrays.fill(arr, 2, 5, 90); //给数组添值,从索引值2到索引值4,不包括5,都改为90; int[] arrNew = Arrays.copyOf(arr, 13); //复制数组,添加的长度为13,不足位的用0补齐 int[] arrNew = Arrays.copyOfRange(arr, 2, 5); //数组的范围复制,索引值从2到5,不包括5 int[] arr = {2,1,5,111,6,9,7,4,10}; // 1 2 4 5 6 7 9 10 111 // 必须先排序 !!!!! Arrays.sort(arr); int i = Arrays.binarySearch(arr, 111); //排完序之后 111的索引值 System.out.println(i);//二分搜索法,必须先排序 } public static void p( int a [] ) { //构造一个方法,如果以后还有数组想进行反转,直接传一个数组进去就可 for(int i = 0;i<a.length;i++) { System.out.print(a[i] + " "); } } }
选择排序
public class SelectSoter { //选择排序,一般是按从小到大的顺序排序.拿索引值0的值与其他数比,把小的值拿前面来, //再依次从索引值1跟其他的比,没有返回类型的. public static void main(String[] args) { int[] a = { 354, 53, 24, 164, 13, 21 }; System.out.println(Arrays.toString(a)); System.out.println("以上是原始数据"); for (int i = 0; i < a.length - 1; i++) { int index = i; for (int j = i + 1; j < a.length; j++) { if (a[index] > a[j]) { index = j; } } int temp = a[i]; a[i] = a[index]; a[index] = temp; System.out.println(Arrays.toString(a)); } }