快速排序
来源:互联网 发布:调音软件哪个好 编辑:程序博客网 时间:2024/05/17 03:27
算法思想
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
代码示例
示例1:
public static void sort(int[] arr, int low, int high){ if(low < high){ int flag = arr[low]; int l = low; int h = high; while(l < h){ while(l < h && arr[h] >= flag){ h--; } if(l < h){ arr[l] = arr[h]; l++; } while(l < h && arr[l] <= flag){ l++; } if(l < h){ arr[h] = arr[l]; h--; } } arr[l] = flag; sort(arr, low, l-1); sort(arr, l+1, high); }}
示例2:
public static void sort(int[] arr, int low, int high){ if(low < high){ int flag = arr[low]; int l = low; int h = high; while(l < h){ while(l < h && arr[h] >= flag){ h--; } if(l < h){ swap(arr, l, h); l++; } while(l < h && arr[l] <= flag){ l++; } if(l < h){ swap(arr, l, h); h--; } } sort(arr, low, l-1); sort(arr, h+1, high); }}private static void swap(int[] arr,int x, int y){ int temp = arr[x]; arr[x] = arr[y]; arr[y] = temp;}
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 嵌入式系统一面观
- 类的继承与派生
- Microsoft JDBC Driver 4.0 for SQL Server下载及安装使用说明
- 树结构练习——判断给定森林中有多少棵树
- uc/os-II 分析(10)--消息队列
- 快速排序
- 101-200
- WSGI:简介
- ActiveMQ高可用架构(zookeeper+levelDB)
- Ubuntu linux中切换到超级用户的方法
- 201-300
- C#中的线程之线程同步
- 写一个宏函数交换一个数字的偶数比特位和奇数比特位
- 301-400