一.简介冒泡排序
比较一个数组中的数据大小,将数组中的数据值从小到大依次排列。
二.实现过程
代码:
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]+" ");
}
,