Java开发QuickSort
发布时间
阅读量:
阅读量
1 问题描述
给定一组数据,使用快速排序得到这组数据的非降序排列。
2 解决方案
2.1 快速排序原理简介
引用自百度百科:
快速排序(Quicksort)是对冒泡排序的一种改进。
起源于C. A. R. Hoare于1962年提出的快速排序算法以其高效的性能在计算机科学领域占据重要地位。其核心概念在于通过一次划分操作将待排序数据集分解为两个互不干扰的部分,在此划分后所有元素在第一部分均小于第二部分中的每一个元素。随后分别对这两个子集重复上述过程直至全部有序,并最终实现整个数据集的有序排列。
具体排序过程:
假设需要排序的数组为A[0]至A[N-1]。首先任选一个数据(通常取数组的第一个元素)作为基准元素,在一趟快速排序中将所有小于基准元素的数据移动至基准元素之前的位置,并将所有大于基准元素的数据排列在基准元素之后的位置。值得注意的是,在这种情况下快速排序并不稳定:当存在多个相同的数值时,在经过一趟快速排序后它们之间的相对位置可能会发生变化。”
一趟快速排序的算法是:
初始化两个变量i和j,在排序开始时将它们设置为i=0和j=N-1(注解说明同上)。当排序启动时,在数组前后两端分别初始化索引变量i(从数组前端向后遍历)并设其初始值为0;同时在数组另一端初始化索引变量j并设其初始值为N-1以配合后续算法运行)。
2)以第一个
全部评论 (0)
还没有任何评论哟~
