首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

快速排序算法的Java兑现

2012-09-21 
快速排序算法的Java实现package com.suifeng.sortpublic class QuickSort {public static void main(Stri

快速排序算法的Java实现

package com.suifeng.sort;public class QuickSort {public static void main(String[] args) {int[] nums = { 49, 38, 65, 97, 76, 13, 27 };System.out.println("=============排序前=============");//显示排序后的数组 for (int i = 0; i < nums.length; ++i) {System.out.print(nums[i] + ",");}System.out.println();//应用快速排序方法 sort(nums, 0, nums.length - 1);System.out.println("=============排序前=============");//显示排序后的数组 for (int i = 0; i < nums.length; ++i) {System.out.print(nums[i] + ",");}System.out.println("");}public static void sort(int[] arr, int low, int high){int lo = low;int hi = high;if(low >= high){return;}// 默认从后往前数boolean flag = true;while(low < high){// 碰到后边比关键码大的值,交换该值与关键码的位置if(arr[low] > arr[high]){int temp = arr[low];arr[low] = arr[high];arr[high] = temp;// 重置下标移动方向flag = !flag;}if(flag){// 关键码在arr[low]处high--;}else{// 关键码在arr[high]low++;}}high++;low--;sort(arr,lo,low);sort(arr,high,hi);}}


执行结果:

=============排序前=============
49,38,65,97,76,13,27,
=============排序前=============
13,27,38,49,65,76,97,


算法的解释来自于http://www.cnblogs.com/yanzi629/archive/2010/11/20/1882863.html,源码部分也参考里边实例代码的是是实现

热点排行