Java的冒泡排序

来源:互联网 发布:java摇奖机转盘 编辑:程序博客网 时间:2024/05/16 04:37

冒泡排序:

冒泡排序的主要思想是相邻的两个数进行比较,大的数字放在后面,小的数字放在前面,这样每进行一次交换必然会导致大的数字越来越靠后,一趟排序后会让最大的数字排到最后,接下来是次大的数字,有点像水泡在水中上浮一样越靠近水平面的数字越大。

举个例子:

如:67,12,1,45,4,24,67

第一次排序后:12,1,45,4,24,67,67

第二次排序后:1,12,4,24,45,67,67

第三次排序后:1,4,12,24,45,67,67

。。。(没有发生变化,可以简化流程)

第六次排序后:1,4,12,24,45,67,67

结束

可以看出冒泡排序是稳定的,相同数字的相对位置次序不会发生变化

Java实现冒泡排序

class bubbleSort{private int[] nums;public void sort(){for(int i=0;i<nums.length;i++){int temp=0;Boolean isfinish = true;//排序结束标志变量for(int j=1;j<nums.length-i;j++,temp++){if(nums[temp]>nums[j]){change(temp,j);isfinish = false;}}if(isfinish){break;}}}public void change(int i,int j){int num=0;num = nums[i];nums[i] = nums[j];nums[j] = num;}public int[] bubbleSort(int[] nums){this.nums = nums;sort();return nums;}public void print(){for(int i=0;i<nums.length;i++){System.out.print(nums[i]+",");}}}public class bubble_sort{public static void main(String[] args){int[] numbers = {67,12,1,45,4,24};bubbleSort bs = new bubbleSort();bs.bubbleSort(numbers);bs.print();}}