冒泡排序可以通过不断的比较数组之间的大小,然后把确定大小的数放在整个数组的最右边(也可以是最左边,只是最右边比较符合思考的模式)
例如升序:
第一次:把整个数组挨个两个两个进行比较,两个比较过后,把大的数往右边移,这样一直比较下来就可以把整个数组的最大数放到最右边
第二次:把除了最大数以外的数再次执行上面的操作,就可以把第二大的数放在整个数组倒数第二的位置(记住最后的一个数就不需要进行操作了,也就是进行比较的时候,数组的长度需要-1)
第三次·······以此类推
代码示例:
class Demo5{
public static void main(String[] args){
int arr[] = {5,90,1,-9,-8,-33,50}; //自定义数组
sort(arr); //调用冒泡排序方法
//遍历输出排序过后的数组
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
//冒泡排序
public static void sort(int[] arr){
for(int i=0;i<arr.length-1;i++){ //外层相当于需要执行多少次对数组求最大值
for(int k=0;k<arr.length-1-i;k++){
if(arr[k]<arr[k+1]){ //如果前面小于后面就把两个的位置互换
int temp = arr[k+1];
arr[k+1] = arr[k];
arr[k] = temp;
}
}
}
}
}