两两比较,左边大,就互相交换。
有n个数需要排序就要比较(n-1)轮,每一轮会确定一个最大值,保存到数组末尾。
public static void main(String[] args) { //用户输入10个0~100之间的数并保存到数组中 Scanner scan = new Scanner(System.in); int[] bubbles = new int[10]; System.out.PRintln("请输入10个0~100之间的整数,每个数之间用空格隔开:"); for(int i=0;i<bubbles.length;i++){ bubbles[i] = scan.nextInt(); } scan.close(); System.out.println("你输入的数组为: "+Arrays.toString(bubbles)); //冒泡排序 System.out.println("----------冒泡排序开始------------"); for(int i=0;i<bubbles.length-1;i++){ /* * i表示总的轮次 * 有n个数需要排序就要比较(n-1)轮 * 每一轮会确定一个最大值 * 每确定一个值,下一轮比较中,比较次数j的值就会减少1 */ for(int j=0;j<bubbles.length-1-i;j++){ //j表示每个轮次比较的次数 if(bubbles[j]>bubbles[j+1]){ int max = bubbles[j+1]; bubbles[j+1] = bubbles[j]; bubbles[j] = max; } } System.out.println("第"+(i+1)+"轮排序结果为: "+Arrays.toString(bubbles)); } System.out.println("----------冒泡排序结束------------"); System.out.println("排序后的数组为: "+Arrays.toString(bubbles)); /** * JDk提供的数组快速排序算法:sort()方法---升序排序并保存 * 程序性能优越 */ //系统随机产生10个0~100的随机整数,保存到数组ksort中 int[] ksort = new int[10]; Random r = new Random(); for(int i=0;i<ksort.length;i++){ ksort[i] = r.nextInt(100)+1; } System.out.println("ksort= "+Arrays.toString(ksort)); Arrays.sort(ksort); System.out.println("快速排序之后的数组为: "+Arrays.toString(ksort)); }数组工具类Arrays中常用方法
Arrays.toString(数组名)---字符串形式输出数组Arrays.copyOf(数组名,length)---复制数组(可以改变数组长度,length表示指定数组长度,如果是增加长度就用元素默认值填充)并返回新数组。
System.arraycopy(源数组,源数组中的起始位置,目标数组,目标数据中的起始位置,要复制的数组元素的数量)---复制数组
Arrays.fill(数组名,val)---用一个值初始化数组,val表示值
新闻热点
疑难解答