Java数组冒泡排序

冒泡排序就是通过相邻的元素进行比较,如果第一个比第二个大,就把他们的值交换,把大的那个往后排,小的往前排,通过逐个的对比,最小的到第一个,最大的到最后一个。具体代码如下:

int[] i= {
     1,3,8,2,4,9,5};//定义int类型数组
int f=0;
for(int j=0;j<i.length;j++) {
      //定义循环次数,因为每轮循环比较出一个元素,所以有多少元素就需要循环几次
	for(int k=0;k<i.length-j-1;k++) {
     //定义每次循环的比较次数,每轮循环比较出一个元素,所以每轮减少一次比较次数
	if(i[k]>i[k+1]) {
     
		f=i[k]; 
		i[k]=i[k+1]; 
		i[k+1]=f;
	}
	}
}
System.out.println(Arrays.toString(i));
}

详细排列过程如下:
首先,j=0,第一轮循环开始,1和3比较,3比1大所以不变,然后3和8比,也不变,再然后8和2比较,8比2大,所以交换位置,然后8和4比,交换位置,8再和9比,位置不变,然后9和5比,交换位置,此时第一轮循环结束,得到最大的9,此时的数组为[1, 3, 2, 4, 8, 5, 9]。

然后第二轮循环开始,j=1,1和3比,位置不变,3和2比,交换位置,3和4比,位置不变,4和8比,位置不变,8和5比,位置交换,由于第一轮最大的已经比较出来,所以第二轮减少一次比较,得到第二大的8,此时的数组为[1, 2, 3, 4, 5, 8, 9]。由于数组元素定义较少,且差距不大,此时已经比较出了结果,但是正常来讲还是需要继续循环比较的。

通过一次循环得到数组最后一个元素,循环完成最终会得到排序完成的数组。

Java数组冒泡排序_第1张图片

你可能感兴趣的:(java)