黑马程序员技术交流社区

标题: 冒泡排序 [打印本页]

作者: wh19900105    时间: 2016-5-16 23:59
标题: 冒泡排序
冒泡排序如何代码实现?
作者: yikwing    时间: 2016-5-17 00:00
  1. /**
  2. * Created by yikwing on 2016/5/17.
  3. */

  4. import java.util.Random;

  5. public class maopao {
  6.     public static void main(String[] args) {
  7.         long stratTime = System.currentTimeMillis();
  8.         int sum = 0;
  9.         for (int i = 0; i < 1000000000; i++) {
  10.             sum += i;
  11.         }

  12.         Random r = new Random();
  13.         int arr[] = new int[10];
  14.         for (int i = 0; i < arr.length; i++) {
  15.             arr[i] = r.nextInt(100);
  16.         }
  17.         PrintArray(arr);

  18.         for (int i = 0; i < arr.length - 1; i++) {
  19.             for (int j = 0; j < arr.length - 1 - i; j++) {
  20.                 if (arr[j] > arr[j + 1]) {
  21.                     Swap(arr, j, j + 1);
  22.                 }
  23.             }
  24.         }
  25.         PrintArray(arr);

  26.         long endtime = System.currentTimeMillis();
  27.         System.out.println("程序运行时间为:" + (endtime - stratTime) + "毫秒");
  28.     }

  29.     public static void PrintArray(int[] arr) {
  30.         for (int i = 0; i < arr.length; i++) {
  31.             System.out.print(arr[i] + " ");
  32.         }
  33.         System.out.println();
  34.     }

  35.     public static void Swap(int[] arr, int i, int j) {
  36.         int temp = arr[i];
  37.         arr[i] = arr[j];
  38.         arr[j] = temp;
  39.     }
  40. }
复制代码

作者: yikwing    时间: 2016-5-17 00:02
yikwing 发表于 2016-5-17 00:00
  1. for (int i = 0; i < arr.length - 1; i++) {
  2.             for (int j = 0; j < arr.length - 1 - i; j++) {
  3.                 if (arr[j] > arr[j + 1]) {
  4.                     Swap(arr, j, j + 1);
  5.                 }
  6.             }
  7.         }
复制代码


这个是冒泡算法的核心代码.
作者: 我是你岁哥❤环    时间: 2016-5-17 02:05
算法原理:
冒泡排序算法的运作如下:
1、比较相邻的元素。如果第一个比第二个大,就交换他们两个;
2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,在这一点,最后的元素应该会是最大的数;
3、针对所有的元素重复以上的步骤,除了最后一个;
4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
作者: ypenghui    时间: 2016-5-17 18:57
原理和代码多解释的不错,本人认为关键在于两个重点:1、循环2、换位
作者: 刘凯强    时间: 2016-5-17 19:57
想问一下,以后用冒泡排序多一点还是选择排序多呢?
作者: yikwing    时间: 2016-5-17 21:35
刘凯强 发表于 2016-5-17 19:57
想问一下,以后用冒泡排序多一点还是选择排序多呢?

选择排序比冒泡排序执行效率高,一般开发都用选择排序
作者: 再见卡卡罗特    时间: 2016-5-17 21:56
看一看。。。。。。。。。
作者: deqiqi939788736    时间: 2016-5-19 17:32
开发时都是排序方法,直接调用,不用你写 ,
作者: 南无ice    时间: 2016-5-19 20:06
其实冒泡排序代码实现不难,把代码搞懂了就可以。主要是思想。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2