黑马程序员技术交流社区

标题: (让你轻松学会快速排序) 源码+视频 [打印本页]

作者: ノtrack    时间: 2014-4-16 18:28
标题: (让你轻松学会快速排序) 源码+视频
视频地址: 快排视频

源码如下:

  1. /**快速法排序
  2.   * @param arr 需要排序的数组
  3.   * @param left 数组最小下标(一般是0)
  4.   * @param right 数组最大下标(一般是Length-1)
  5.   * @return int[]
  6.   */
  7. private static int[] fastSort(int[] arr,int left,int right){
  8.         if(left < right){
  9.             int s = arr[left];
  10.             int i = left;
  11.             int j = right + 1;
  12.             while(true){
  13.                 //向右找大于s的元素的索引
  14.                 while(i+1 < arr.length && arr[++i] < s);
  15.                 //向左找小于s的元素的索引
  16.                 while(j-1 > -1 && arr[--j] > s);
  17.                 //如果i >= j 推出循环
  18.                 if(i >= j){
  19.                     break;
  20.                 }else{
  21.                     //交换i和j位置的元素
  22.                     int t = arr[i];
  23.                     arr[i] = arr[j];
  24.                     arr[j] = t;
  25.                 }
  26.             }
  27.             arr[left] = arr[j];
  28.             arr[j] = s;
  29.             //对左面进行递归
  30.             fastSort(arr,left,j-1);
  31.             //对右面进行递归
  32.             fastSort(arr,j+1,right);
  33.         }
  34.         return arr;
  35.     }
复制代码

作者: ノtrack    时间: 2014-4-16 18:29
地址: http://tieba.baidu.com/p/1797158322  我不是插入url了么 咋的不行
作者: ノtrack    时间: 2014-4-16 18:30
地址在一楼,  学习去了..:lol




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