A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wh19900105 中级黑马   /  2016-5-16 23:59  /  501 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

冒泡排序如何代码实现?

9 个回复

倒序浏览
  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. }
复制代码
回复 使用道具 举报
  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.         }
复制代码


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

选择排序比冒泡排序执行效率高,一般开发都用选择排序
回复 使用道具 举报
看一看。。。。。。。。。
回复 使用道具 举报
开发时都是排序方法,直接调用,不用你写 ,
回复 使用道具 举报
其实冒泡排序代码实现不难,把代码搞懂了就可以。主要是思想。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马