快速排序代码
2016-09-22 11:44
274 查看
算法原理见:
http://blog.csdn.net/morewindows/article/details/6684558
写的很通俗易懂了。
然后按照文章里的理论,写了一把代码。也算通俗易懂^^
http://blog.csdn.net/morewindows/article/details/6684558
写的很通俗易懂了。
然后按照文章里的理论,写了一把代码。也算通俗易懂^^
package sort; import java.util.Arrays; import java.util.Random; public class FastSort { /** * * * @param array source array * @param start, start and end,def a range of array should sort * @param end */ private static void sort(int[] array, int start, int end) { int i = start; int j = end; /*用来比较的标准值 * 当array[i]>stand的时候,将array[i]移动到stand的后面 * 当array[j]<=stand的时候,将array[j]移动到stand的前面 */ int stand = array[i]; int flag = 0;//0比较end,1比较start while (i != j) { if (flag == 0) { if (stand < array[j]) { j--; } else { array[i] = array[j]; i++; flag = 1; } } else { if (stand >= array[i]) { i++; } else { array[j] = array[i]; j--; flag = 0; } } } //停止位,将该值设置成stand array[i] = stand; //左边,右边分别排序 if (start < i - 1) { //在i的左边不止一个数组 sort(array, start, i - 1); } if (i < end - 1) { //在i的右边不止一个数组 sort(array, i + 1, end); } } public static void sort(int[] array) { sort(array, 0, array.length - 1); } public static void main(String[] args) { int[] arr = new int[1000]; Random r = new Random(); for (int i = 0; i < 1000; i++) { arr[i] = r.nextInt(1000); } sort(arr); System.out.println(Arrays.toString(arr)); } }
相关文章推荐
- 快速排序其他实现代码
- 冒泡排序、快速排序、选择排序、插入排序、shell排序C代码
- 快速排序经典代码
- 选择排序、快速排序代码
- JS实现随机化快速排序的实例代码
- 随机化快速排序代码
- 排序【快速排序代码示例】
- 快速排序Java代码
- C++三种排序,快速排序、选择排序、冒泡排序----简单代码
- 最近编写了快速冒泡排序代码,帮忙看看有没有什么破绽?
- python 快速排序代码
- 快速排序 C代码
- 快速排序代码
- [java]排序分类--及选择排序、插入排序、冒泡排序、快速排序的解释图和代码
- 快速排序的C语言代码实现
- JAVA排序算法实现代码-快速(Quick Sort)排序
- 快速排序代码实现_我来找茬
- 快速排序的代码
- 快速排序代码
- python快速排序代码实例