zoukankan      html  css  js  c++  java
  • 冒泡排序

    1、冒泡排序

      依次比较相邻的数据,将小数据放在前,大数据放在后;即第一趟先比较第1个和第2个数,大数在后,小数在前,再比较第2个数与第3个数,大数在后,小数在前,以此类推则将最大的数"滚动"到最后一个位置;第二趟则将次大的数滚动到倒数第二个位置......第n-1(n为无序数据的个数)趟即能完成排序。

    2、代码实现

     1 package com.wcy.sort;
     2 
     3 public class BubbleSortTest {
     4 
     5     /**
     6      * 方法一
     7      * @param arr
     8      * @return
     9      */
    10     public static int[] bubbleSort(int[] arr){
    11         int temp = 0;
    12         for (int i = 0; i < arr.length - 1; i++) {
    13             int flag = 1; // 检测排序结果是否结束
    14             for (int j = 0; j < arr.length-1-i; j++) {
    15                 if (arr[j] > arr[j+1]) {
    16                     temp = arr[j+1];
    17                     arr[j+1] = arr[j];
    18                     arr[j] = temp;
    19                     flag = 0;
    20                 }
    21             }
    22             System.out.print(""+(i+1)+"趟的排序结果为:");
    23             showArray(arr);
    24             if (flag == 1) {
    25                 break;
    26             }
    27         }
    28         
    29         return arr;
    30     }
    31     
    32     /**
    33      * 方法一
    34      * @param arr
    35      * @return
    36      */
    37     public static int[] bubbleSort2(int[] arr){
    38         int temp = 0;
    39         for (int i = 0; i < arr.length-1; i++) {
    40             int flag = 1; // 检测排序结果是否结束
    41             for (int j = arr.length-1; j > i; j--) {
    42                 if (arr[j] < arr[j-1]) {
    43                     temp = arr[j-1];
    44                     arr[j-1] = arr[j];
    45                     arr[j] = temp;
    46                     flag = 0;
    47                 }
    48             }
    49             System.out.print(""+(i+1)+"趟的排序结果为:");
    50             showArray(arr);
    51             if (flag == 1) {
    52                 break;
    53             }
    54         }
    55         
    56         return arr;
    57     }
    58     
    59     /**
    60      * 打印数组函数
    61      * @param arr 待打印的数组
    62      */
    63     public static void showArray(int[] arr){
    64         System.out.print("[");
    65         for (int i = 0; i < arr.length; i++) {
    66             if (i == arr.length-1) {
    67                 System.out.print(arr[i]);
    68             }else {
    69                 System.out.print(arr[i] + ",");
    70             }
    71         }
    72         System.out.println("]");
    73     }
    74     
    75     /**
    76      * 用户页面测试
    77      * @param args
    78      */
    79     public static void main(String[] args) {
    80         int[] arr = {36,25,48,12,25,65,43,57};
    81         int[] arrResult = bubbleSort2(arr);
    82         System.out.print("最终冒泡排序结果为:");
    83         showArray(arrResult);
    84     }
    85 }
  • 相关阅读:
    无监督学习在反欺诈中的应用
    Java中Object对象方法
    ambari下httpfs安装
    深入理解spark-rdd详解
    Tensorflow实践Basic Classification
    深入理解spark-两种调度模式FIFO,FAIR模式
    深入理解spark-taskScheduler,schedulerBackend源码分析
    js模仿页面点击
    记一次请求走私学习
    十种常见的报错注入
  • 原文地址:https://www.cnblogs.com/wangchaoyuan/p/5980405.html
Copyright © 2011-2022 走看看