Java-冒泡排序

一.简介冒泡排序

        比较一个数组中的数据大小,将数组中的数据值从小到大依次排列。

二.实现过程

        代码:

package kgc.cn.haoxzhello;

public class HXZ6 {
    public static void main(String[] args) {
        int []arr = {85,65,96,54,25,15,23,8};
        for(int i=1;i<=arr.length-1;i++){
            for(int j=0;j<=arr.length-1-i;j++){
                if(arr[j]>arr[j+1]){
                    int kong = arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=kong;
                    
                }
                
            }
            
        }
        for(int i = 0;i<=arr.length-1;i++){
            System.out.print(arr[i]+" ");
            
        }
    
        
    }

}

然后来说明一下这个工作流程。

首先,随意声明一个数组:例如

int []arr = {85,65,96,54,25,15,23,8};
我们想要数组中的数据,两两依次进行比较,可以看到数组中一共只有8个数据,如果两两依次比较一共需要比较7次(1vs2,2vs3,3vs4。。。7vs8),所以首先建立一个外层循环,代表数组中的数一共需要比较7次 也就是数组长度-1
所以建立外层循环
for(int i=1;i<=arr.length-1;i++){}


外层循环代表:
排序趟数。每进行完一趟,最后面那个数,必定是数组中最大的一个,所以第二趟比较的时候最后一个数不参与比较第二趟比较完成后,倒数第二个数也一定是数组中第二大的数,所以第三趟比较的时候最后两个数不参与比较;

依次类推,每一趟比较次数-1;

 for(int j=0;j<=arr.length-1-i;j++){
                if(arr[j]>arr[j+1]){
                    int kong = arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=kong;
内层循环控制每一趟排序多少次:因为每一趟排完之后,数组中最后那个数,必定是最大的,所以那个数不需要排序,所以内层循序的长度是数组长度-1-i
如果前面一个数大于后面一个数的话,他们两个需要交换位置,则需要声明一个新的空变量,便于他们之间交换数值。
                    int kong = arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=kong;、
则为此部分,
当循环全部进行结束,最后需要循环输出这个数组中的数值即可
 for(int i = 0;i<=arr.length-1;i++){
            System.out.print(arr[i]+" ");
            
        }


























posted @ 2020-05-05 14:52  贤哲  阅读(246)  评论(0编辑  收藏  举报