快速查找算法
来源:互联网 发布:mac上ps多少钱 编辑:程序博客网 时间:2024/05/16 17:45
快速排序是对冒泡排序的一种改进。它的基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
快速查找的实例:
public class QuickSort {
/**主方法*/
public static void main(String[] args) {
//声明数组
int[] nums = {27, 8, 57, 9, 23, 41, 65, 19, 0, 1, 2, 4, 5};
//应用快速排序方法
quickSort(nums, 0, nums.length-1);
//显示排序后的数组
for(int i = 0; i < nums.length; ++i) {
System.out.print(nums[i] + ",");
}
System.out.println("");
}
/**快速排序方法*/
public static void quickSort(int[] a, int lo0, int hi0) {
int lo = lo0;
int hi = hi0;
if (lo >= hi)
return;
//确定指针方向的逻辑变量
boolean transfer=true;
while (lo != hi) {
if (a[lo] > a[hi]) {
//交换数字
int temp = a[lo];
a[lo] = a[hi];
a[hi] = temp;
//决定下标移动,还是上标移动
transfer = (transfer == true) ? false : true;
}
//将指针向前或者向后移动
if(transfer)
hi--;
else
lo++;
//显示每一次指针移动的数组数字的变化
/*for(int i = 0; i < a.length; ++i) {
System.out.print(a[i] + ",");
}
System.out.print(" (lo,hi) = " + "(" + lo + "," + hi + ")");
System.out.println("");*/
}
//将数组分开两半,确定每个数字的正确位置
lo--;
hi++;
quickSort(a, lo0, lo);
quickSort(a, hi, hi0);
}
}
- 快速查找算法
- 快速查找算法
- simhash查找快速算法
- JAVA-快速查找算法
- 二分法快速查找算法
- 查找算法---快速选择算法
- 二分查找算法(快速查找)
- 数据记录快速查找算法
- 查找算法·快速选择
- 快速查找字符串中首个重复字母算法
- 区间表的快速查找算法
- 二分查找算法与快速排序
- Rabin-Karp 算法(字符串快速查找)
- 二分查找程序算法和快速排序
- 二分法快速查找的递归算法
- 二分查找算法递归实现&&快速排序算法实现
- 快速查找
- 快速查找
- string.gfind(lua 函数)
- 样式表
- 追求代码质量: 监视圈复杂度
- --导入excel,格式固定
- linux常用命令
- 快速查找算法
- 系统提示内存不为read的解决方法
- BOOST源码笔记(3) - 节省内存的小技巧
- Flex 3处理数据 访问 XML 数据4
- 纪念逝去的回忆(4)。。。
- 检查显卡加速方式
- 学习brew开发的一点经验
- C++内存对象大会战
- linux 命令------------- 目录文件、文件权限