zoukankan      html  css  js  c++  java
  • 算法练习4冒泡排序java版

    冒泡排序的基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。

    借用嘻哈算法这本书中的一张图

    如果有n 个数进行排序,只需将n-1 个数归位,也就是说要进行n-1 趟操作。而“每一趟”都需要从第1 位开始进行相邻两个数的比较,将较小的一个数放在后面,比较完毕后向后挪一位继续比较下面两个相邻数的大小,重复此步骤,直到最后一个尚未归位的数,已经归位的数则无需再进行比较。

    java程序代码如下:

    public class PaiXu {
    
        public static void main(String[] args) {

              PaiXu px = new PaiXu();
              int[] score = {5,3,5,2,8,0,7,10,4};

    /*
             * 20170205冒泡排序
             */
            int[] bubbleSortResult = px. bubbleSort(score);
            for(int i=0;i<score.length;i++){
                System.out.print(bubbleSortResult[i]+"    ");
            }
        }
        /*
         *  冒泡排序
         *  @param score 分数(0-10分)
         *  @return 返回计数数组
         *  说明:有n个数,相邻两个数比较,如果前面的数比后面的数小就交换位置,假设把一个最小的数放在最后面归位为一趟,需要比较1~n-1趟,设趟数为i,每趟比较次数为1~n-i次
         */
        public int[]  bubbleSort(int[] score){
            int a=0;
            int n=score.length;
            for(int i=1;i<=n-1;i++){
                for(int j=1;j<=n-i;j++){
                    if(score[j-1]<score[j]){
                        a=score[j-1];
                        score[j-1]=score[j];
                        score[j]=a;
                    }
                }
            }
            return score;
        }
    }

    代码执行结果为:

    10    8    7    5    5    4    3    2    0    
  • 相关阅读:
    敏捷软件开发和极限编程介绍
    内存泄漏检测方法
    cocopods 安装
    JavaScript学习笔记-数组(1)
    JavaScript对象应用-字符串和图片对象
    JavaScript基础-面向对象编程<2>
    JavaScript基础-面向对象编程<1>
    JavaScript基础-对象<2>
    JavaScript基础-对象<1>
    高性能朋友圈
  • 原文地址:https://www.cnblogs.com/paopaoquan/p/6367353.html
Copyright © 2011-2022 走看看