java面试题之冒泡排序
原理:比较左右两个元素的大小,根据大小确定是否将左右的元素进行交换。
普通的冒泡排序需要两个for循环和一个if判断语句。
外循环:外循环每循环一次,意味着一个元素排好了,如果有n个元素,至少需要(n-1)次排序。
内循环:内循环内的内容有一个判断,根据这个判断,来判断该元素是否要与旁边的内容交换。
public class Bubble {
public static void main(String[] args) {
//定义一个数组,对该数组进行排序
int [] arr = {1,3,2,5,56,324,234,245};
//排序
//外循环,总共需要循环(n-1)(n为元素的个数)次
for(int i=0;i<(arr.length-1);i++) {
//定义一个常量,用于交换
int temp;
//内循环,需要循环arr.length-1-i次。
for(int j=0;j<(arr.length-1-i);j++) {
//从左往右依次减小
if(arr[j]<arr[j+1]) {
temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
//从左往右依次增大
/*if(arr[j]>arr[j+1]) {
temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}*/
}
}
//输出
System.out.print("[");
for(int i=0;i<arr.length;i++) {
if(i==(arr.length-1)) {
System.out.print(arr[i]);
}else {
System.out.print(arr[i]+",");
}
}
System.out.print("]");
}
}