java编程题:用Java实现一个冒泡排序算法

来源:互联网 发布:现任淘宝网总裁是谁 编辑:程序博客网 时间:2024/06/06 02:49

/** * java编程题:用Java实现一个冒泡排序算法  */public class Test12 {public static void main(String[] args) {int[] sortNum = {12,33,28,86,15,62,9,38};//定义数组bubbleSort3(sortNum);//开始排序System.out.println(Arrays.toString(sortNum));//打印结果}/** * 写法一:从小到大顺序进行排列,从[前面]开始比较。。。容易理解。 *  * @param sortNum */private static void bubbleSort(int[] sortNum){int temp = 0;for (int i = 0; i < sortNum.length-1; i++) {//第一个for循环控制排序要走多少趟,最多做n-1趟排序for (int j = 0; j < sortNum.length-1-i; j++) {//第2个for循环控制每趟比较多少次if(sortNum[j+1]<sortNum[j]){//大的往后面排temp = sortNum[j];sortNum[j] = sortNum[j+1];sortNum[j+1] = temp;}}}}/** * 写法二:从小到大顺序进行排列,从[后面]开始比较。。。不按常规套路出牌。 *  * @param sortNum */private static void bubbleSort2(int[] sortNum){int temp = 0;for (int i = 0; i < sortNum.length-1; i++) {//第一个for循环控制排序要走多少趟,最多做n-1趟排序for (int j = sortNum.length-1; j > i; j--) {//第2个for循环控制每趟比较多少次if(sortNum[j-1]>sortNum[j]){//大的往后面排temp = sortNum[j-1];sortNum[j-1] = sortNum[j];sortNum[j] = temp;}}}}/** * 写法三:从小到大顺序进行排列,从[前面]开始比较。。。改进优化版。 *  * @param sortNum */private static void bubbleSort3(int[] sortNum){boolean flag = true;        while(flag){        flag = false;                int temp = 0;    for (int i = 0; i < sortNum.length-1; i++) {//第一个for循环控制排序要走多少趟,最多做n-1趟排序    for (int j = 0; j < sortNum.length-1-i; j++) {//第2个for循环控制每趟比较多少次    if(sortNum[j+1]<sortNum[j]){//大的往后面排    temp = sortNum[j];    sortNum[j] = sortNum[j+1];    sortNum[j+1] = temp;    flag = true;    }    }    //优化判断    if(!flag){// 若没有交换则排序完成,直接跳出                    break;                }    }        }}}


打印结果:

[9, 12, 15, 28, 33, 38, 62, 86]


参考地址:
http://www.cnblogs.com/shen-hua/p/5422676.html
http://blog.csdn.net/donggua3694857/article/details/56959553
http://blog.csdn.net/ouyang_peng/article/details/46540497
http://blog.csdn.net/jq_ak47/article/details/46743613
http://blog.csdn.net/feng2qing/article/details/53860685
http://blog.csdn.net/qy1387/article/details/7752973


0 0
原创粉丝点击