JAVA基础_JAVA中的冒泡排序

JAVA基础_JAVA中的冒泡排序

在java中不可能每一个数组都做到有序排列,当我们要用到它时就必须先对其进行排序,所以这里就引入了冒泡排序来实现,那么他的思路是什么呢?
其实很简单,我们把数组中的第一个数看做最大,依次和后一位去比较,当第一位较大时,我们把两个数交换位置(这里排序是默认为升序),然后再进行前一步操作,直到第一圈排序完成,找到最大的一个数;而如果是第一位小于后一位,那么位置不变,后一位代替第一位和后边的去比较,依次比较下去,直到第一圈结束,找到最大。这里我们就完成了第一次排序,找到最大值,这时我们就可以利用循环去找到剩下每一个数的位置。下边就是代码实现:

public static void main(String[] args) {
	int z = 0;//用来做中转,初始要为0
	int[]ssr={12,5,6,78,4,8};
	/*
		这里外部的for循环就是用来控制循环次数,做到数组每个数都能排到
	*/
	for (int j = 0;j<ssr.length;j++){
		/*
			内部的for循环配合if判断做到每一轮找到一个该轮最大数
			i这里是索引,不能大与数组的长度,否则索引越界
			这里可以再优化一下for (int i = 0;i<ssr.length-1-i;i++){},让前边找到的排好的数不用参与判断,减少耗时
		*/
		for (int i = 0;i<ssr.length-1;i++){
			if(ssr[i]>ssr[i+1]){
			z=ssr[i];
			ssr[i]=ssr[i+1];
			ssr[i+1]=z;
			}
		}
	}
//到这里就完成了冒泡排序,但打印效果很难看,所以我们可以调java写好的漂亮打印做到美观
	String a = java.util.Arrays.toString(ssr);
	System.out.println(a);
//若不想去调也可以自己去写(手动苦瓜脸)
	bt(ssr);
}
static void bt(int[]ssr){
	System.out.print("[");
	int a = 0;
for (a = 0;a<ssr.length;a++){
		System.out.print(ssr[a]);
	if(a!=ssr.length-1){
		System.out.print(",");
	}
}
		System.out.print("]");
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章