package huaweiInterview; import java.util.Arrays; import java.util.Random; /** * 一串数字从1.....N ,随机产生一个数组(整数),长度为N, *写一组算法进行排序。 * @author Administrator * */ public class Quesiton2 { public static void main(String[] args) { Number num=new Number(100); int [] befor=num.getNumber(); for (int i = 0; i < befor.length; i++) { System.out.print(" "+befor[i]); } // NumberSort.bubbleSort(befor); // NumberSort.sort(befor); NumberSort.quickSort(befor); int [] after=num.getNumber(); System.out.println(); for (int i = 0; i < after.length; i++) { System.out.print(" "+after[i]); } //拓展 System.out.println(); System.out.println(12>>2); byte b; System.out.println(t); // static int t2=0; 不能有修饰符 // static String str; 不能有修饰符 int t2; // System.out.println(t2);成员变量必须初始化 b='f'; System.out.println(Byte.MIN_VALUE+"---"+ Byte.MAX_VALUE); } static int t; } class Number{ int n; int []number; public int[] getNumber() { return number; } public void setNumber(int[] number) { this.number = number; } public Number(int n){ this.n=n; this.number=new int[n]; getNumberArray(); } private void getNumberArray() { Random random = new Random(); for (int i = 0; i < number.length; i++) { number[i] = random.nextInt(n); } setNumber(number); } } class NumberSort { //jdk 自带的排序 Arrays.sort public static void sort(int[] array) { Arrays.sort(array); } //冒泡排序 public static void bubbleSort(int[] array) { for (int i = 0; i < array.length; i++) { for (int j = 0; j < array.length-i-1; j++) { if(array[j]>array[j+1]){ swap(array,j, j+1); } } } } //快速排序 public static void quickSort(int[] array){ quickSort(array,0,array.length-1); } //快速排序具体过程 private static void quickSort(int[] array, int low, int high){ if(low<high){ int p=partition(array, low, high); quickSort(array, low, p-1); quickSort(array,p+1,high); } } //算出快速排序的中间点 private static int partition(int[] array, int low, int high){ int h=array[high]; int l=low-1; for (int i = low; i < high; i++) { if(array[i]<h){ l++; swap(array, l, i); } } swap(array, ++l, high); return l; } //交换位置 private static void swap(int[] array,int i,int j){ int temp=array[i]; array[i]=array[j]; array[j]=temp; } }