java冒泡排序,就是将前后两个数相比较,如果前一个数比后一个数要大,就将两个数的位置进行交换
下面来看程式:
准备工作:
/**
* 随机生成一个无序数组
* @return
*/
public static int[] getUnorderedArr(){
int[] arr = new int[100];
for(int i = 0;i<arr.length;i++){
arr[i] = (int)(Math.random()*100);
}
return arr;
}
上面程式会随机生成一个100以内的长度为100的无序数组,接下来看我们的排序:
/**
* 冒泡排序
* @param arr 无序数组
* @return 有序 数组
*
* 原理:比较前后两个数,比较大小后交换位置
* 第一轮循环后 将最大的排序到数组的最末尾
* 然后进行第二轮排序 循环次数减一
*
*/
public static int[] getOrderedArrWithMP(int[] arr){
int temp = 0;
for(int i = 0;i<arr.length-1;i++){
for(int j = 0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
原理还是很简单的,只不过要注意循环判断的条件。
欢迎指正!!!