java 冒泡排序和稀疏数组
package com.study.shuzu; import java.lang.reflect.Array; import java.util.Arrays; // 冒泡排序 // 1.比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置 // 2.每一次比较都会产生一个最大,或者最小的数字 // 3.下一轮则可以少一次排序 // 4.依次循环,直到结束 public class maopao1 { public static void main(String[] args) { int[] a={1,78,89,69,36,15,45,77,85}; int [] sort = sort(a); //调用完我们自己写的排序方法后,返回一个排序后的数组 System.out.println(Arrays.toString(sort)); } public static int[] sort(int [] a){ //临时变量 int temp = 0; boolean flag = false; //通过flag标识位减少没有意义的比较 //外层循环,判断我们这个要走多少次 for (int i = 0; i < a.length-1; i++) { //内层循环,比价判断两个数,如果第一个数,比第二个数大,则交换位置 for (int j = 0; j < a.length-1-i; j++) { if( a[j+1] > a[j] ){ temp = a[j+1]; a[j+1] =a[j]; a[j] = temp; flag = true; } } if(flag == false){ break; } } return a; } }