今天面试被虐到了,问到冒泡排序,面试过后自己才想起来,反应慢了。为了避免自己犯同样错误,特记录下来。
冒泡排序思想就是相邻元素两两比较,然后把较大的往下移,交换元素顺序。看起来就是越来越小的元素排前面了,顾为冒泡。最底下的排好后,重复之前的操作,只不过这次不再需要考虑已经排好序的最底下的元素了。代码如下:
public static int[] maopao(int[] t){
for(int a=t.length;a>0;a--){//外层循环数组长度次
for(int b=0;b<a-1;b++){//内层循环比外层循环少一次,因为每次内层循环后,都会产生一个排好序的元素
if(t[b]>t[b+1]){//交换相邻元素
int tmp = t[b];
t[b] = t[b+1];
t[b+1] = tmp;
}
}
}
return t;
}
测试程序:
/**
* 输入数据都小于M值,假如M默认值是10
*/
public static final int M = 10;
public static void main(String[] args) {
int[] count = new int[M];
/**
* 假设输入数据是5,4,3,9,8,6,7
*/