java快速排序
2015-08-11 08:51
381 查看
public class QuickSort{ public static void main(String[] args) { int[] arr = {5,6,6,4,9,5,5,5,2,7,8,1}; print(arr); sort(arr, 0, arr.length - 1); print(arr); } //打印方法 public static void print(int[] arr) { for(int i = 0; i < arr.length; i++){ System.out.print(arr[i] + " "); } System.out.println(); } //排序方法 public static void sort(int[] arr, int low, int high){ if(low >= high) return; if((high-low) == 1){ if(arr[low] > arr[high]) swap(arr, low, high); return; } int temp = arr[low]; int left = low + 1; int right = high; while(left < right) { //从left位置开始向右找大于temp的值 while(left < right) { if(arr[left] > temp) break; left++; } //从right开始向左找小于temp的值 while(left <= right) { if(arr[right] <= temp) break; right--; } if(left < right){ swap(arr, left, right); left++; right--; } } swap(arr, low, right); sort(arr, low, right - 1); sort(arr, right + 1, high); } //交换函数 public static void swap(int[] arr, int i, int j) { int temp ; temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } }
相关文章推荐
- windows下(java环境)配置最新版的vlcj
- Spring3.1.0 jar包详解说明
- Msc系统上的eclipse遇到乱码问题解决方式
- 在Java中辅助报表工具展现json
- Java实现与调用Web Service
- 开源 自由 java CMS - FreeCMS1.9 分纪录
- Java语言的多态机制实现
- Java学习笔记16--异常
- Java学习笔记15--引用传递
- Java学习笔记14--动态代理
- Java学习笔记13--比较器(Comparable、Comparator)
- Java学习笔记11--Annotation
- Java学习笔记12--国际化
- Java学习笔记10--枚举
- Java学习笔记09--反射机制
- Java学习笔记08--泛型
- Java学习笔记07--日期操作类
- Java学习笔记06--正则表达式
- Java学习笔记05--字符串
- Java学习笔记03--判断与循环语句