转发请注明原创地址 http://www.cnblogs.com/dongxiao-yang/p/6264831.html

冒泡

  1. public static int[] bubble_sort(int[] arr) {
  2. int n = arr.length;
  3. for (int i = 0; i < n - 1; i++) {//每次循环代表一轮冒泡,一轮冒泡后顶端的数字一定是最大的
  4. for (int j = 0; j < n - 1 - i; j++) {
  5. if (arr[j] < (arr[j + 1])) {
  6. int tmp = arr[j + 1];
  7. arr[j + 1] = arr[j];
  8. arr[j] = tmp;
  9. }
  10.  
  11. }
  12. }
  13.  
  14. return arr;
  15.  
  16. }

快速排序1

  1. public static void quick_sort(int[] arr, int start, int end) {
  2.  
  3. if (start >= end) {
  4. // System.out.println("qs finish");
  5. return;
  6. }
  7. int x = arr[start];
  8. int s = start;
  9. int e = end;
  10.  
  11. while (s < e) {
  12. if (arr[e] < x) {
  13. for (; s < e; s++) {
  14. if (arr[s] > x) {
  15. int tmp = arr[s];
  16. arr[s] = arr[e];
  17. arr[e] = tmp;
  18. // System.out.println("switch " + arr[s] + " " +
  19. // arr[e]);
  20. // System.out.println("s is " + s + " e is " + e);
  21. break;
  22. }
  23. }
  24. } else {
  25. e--;
  26.  
  27. }
  28. }
  29. // System.out.println(" the end s is " + s + " e is " + e +
  30. // " arr[s] is "
  31. // + arr[s]+" arr[start] is "+arr[start]);
  32.  
  33. arr[start] = arr[s];
  34.  
  35. arr[s] = x;
  36.  
  37. System.out.println("quick_sort is "+Arrays.toString(arr));
  38.  
  39. quick_sort(arr, start, s - 1);
  40. quick_sort(arr, s + 1, end);
  41.  
  42. }

快速排序2代码优化

  1. public static void quick_sort2(int[] arr, int start, int end) {
  2.  
  3. if (start < end) {
  4.  
  5. int x = arr[start];
  6. int s = start;
  7. int e = end;
  8.  
  9. while (s < e) { //退出循环代表一轮排序结束,首尾游标相遇
  10. while (s < e && (arr[e] >= x)) // 从右向左找第一个小于x的数
  11. {
  12. e--;
  13. }
  14.  
  15. while (s < e && (arr[s] <= x)) // 从右向左找第一个小于x的数
  16. {
  17. s++;
  18. }
  19.  
  20. if (s < e) {// 左右两个数交换
  21. int tmp = arr[s];
  22. arr[s] = arr[e];
  23. arr[e] = tmp;
  24.  
  25. // System.out.println("switch " + arr[s] + " " + arr[e]);
  26. // System.out.println("s is " + s + " e is " + e);
  27. }
  28.  
  29. }
  30.  
  31. arr[start] = arr[s]; //基准数归位到数组中正确位置
  32.  
  33. arr[s] = x;
  34.  
  35. System.out.println("quick_sort2 is "+Arrays.toString(arr));
  36.  
  37. quick_sort2(arr, start, s - 1);
  38. quick_sort2(arr, s + 1, end);
  39.  
  40. }
  41.  
  42. }

冒泡排序和快速排序的java实现的更多相关文章

  1. 程序员必知的8大排序(三)-------冒泡排序,快速排序(java实现)

    程序员必知的8大排序(一)-------直接插入排序,希尔排序(java实现) 程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现) 程序员必知的8大排序(三)-------冒 ...

  2. 牛客网Java刷题知识点之插入排序(直接插入排序和希尔排序)、选择排序(直接选择排序和堆排序)、冒泡排序、快速排序、归并排序和基数排序(博主推荐)

    不多说,直接上干货! 插入排序包括直接插入排序.希尔排序. 1.直接插入排序: 如何写成代码: 首先设定插入次数,即循环次数,for(int i=1;i<length;i++),1个数的那次不用 ...

  3. [C#][算法] 用菜鸟的思维学习算法 -- 马桶排序、冒泡排序和快速排序

    用菜鸟的思维学习算法 -- 马桶排序.冒泡排序和快速排序 [博主]反骨仔 [来源]http://www.cnblogs.com/liqingwen/p/4994261.html  目录 马桶排序(令人 ...

  4. 快速排序算法 java 实现

    快速排序算法 java 实现 快速排序算法Java实现 白话经典算法系列之六 快速排序 快速搞定 各种排序算法的分析及java实现 算法概念 快速排序是C.R.A.Hoare于1962年提出的一种划分 ...

  5. PHP描述冒泡排序和快速排序算法

    使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组.使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组.写一个二维数组排序算法函数,能够具有通用 ...

  6. JavaScript实现冒泡排序、快速排序、插入排序

    JavaScript实现冒泡排序.快速排序.插入排序 时间:2014-01-09 18:05:51  来源:  作者:胡晗 冒泡排序的基本思想:所谓冒泡就是泡泡一个一个往上冒,让体积最轻的泡泡浮在最上 ...

  7. python 实现冒泡排序与快速排序 遇到的错误与问题

    今天看了兄弟连php里面的冒泡排序与快速排序,想了下应该可以用python实现. 冒泡排序函数: def mysort(x): len1 = len(x) for i in range(len1-1, ...

  8. 八大排序方法汇总(选择排序,插入排序-简单插入排序、shell排序,交换排序-冒泡排序、快速排序、堆排序,归并排序,计数排序)

    2013-08-22 14:55:33 八大排序方法汇总(选择排序-简单选择排序.堆排序,插入排序-简单插入排序.shell排序,交换排序-冒泡排序.快速排序,归并排序,计数排序). 插入排序还可以和 ...

  9. 【子非鱼】冒泡排序过程呈现之java内置GUI表示

    自己玩玩写写,排序的过程多么有趣,特别是把看着电脑吧一堆乱七八糟的数据排成有序组合的时候,看起来贼舒服,特别是强迫症患者.好了,话不多说上代码,也算是自己记录一下吧,没有什么技术含量但个人感觉比较有趣 ...

随机推荐

  1. SQL2008附加数据库提示错误:5120

    前几天在附加数据库时,出现了这个错误           在win7 x64系统上使用sql2008进行附加数据库(包括在x86系统正在使用的数据库文件,直接拷贝附加在X64系统中)时,提示无法打开文 ...

  2. python 时间及日期函数

    本人最近新学python ,用到关于时间和日期的函数,经过一番研究,从网上查找资料,经过测试,总结了一下相关的方法. import timeimport datetime '''时间转化为时间戳: 2 ...

  3. mysql查询结果中文显示成了问号

    在mysql的配置文件my.ini中的[mysqld]项中加这两句 character-set-server = utf8 collation-server = utf8_general_ci 在任务 ...

  4. net.sf.json日期类型格式化输出

    net.sf.json 日期类型格式化输出 Date, Timestamp ; 编写工具类 package cn.jorcen.commons.util; import java.text.DateF ...

  5. hadoop 存储空间满了

    -- ::, WARN mapred.LocalJobRunner - job_local_0001 org.apache.hadoop.util.DiskChecker$DiskErrorExcep ...

  6. LibLinear(SVM包)使用说明之(三)实践

    LibLinear(SVM包)使用说明之(三)实践 LibLinear(SVM包)使用说明之(三)实践 zouxy09@qq.com http://blog.csdn.net/zouxy09 我们在U ...

  7. ASP.NET MVC 入门3、Routing

    本系列文章基于Microsoft ASP.NET MVC Beta. 在一个route中,通过在大括号中放一个占位符来定义( { and } ).当解析URL的时候,符号"/"和& ...

  8. vcastr2.0插件超级简单使用

                Vcastr2.0简单使用 友情提示:1.蓝色文字为必修改内容.2.#字符后面是解释该代码段的主要内容 1. 引用swfobject.js文件 #public/videoplu ...

  9. Android list1去除list2中的元素

    public static void main(String[] args) { List<String> firList = new ArrayList<String>(); ...

  10. javascript小游戏--生命游戏

    昨天参加Code Retreat的活动,"Code Retreat是一个一天的集中练习的活动,专注于软件开发和设计的基础". 要了解更多信息可前往 CodeRetreat官网 通过 ...