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

java兑现快速排序

2012-10-11 
java实现快速排序/** * 快速排序 * @author zhoujianghai * zhoujiangbohai@163.com */public class Quick

java实现快速排序

/** * 快速排序 * @author zhoujianghai * zhoujiangbohai@163.com */public class QuickSort {/** * @param args */public static void main(String[] args) {int data[] = {12,34,56,7,78,345,5,6,890};System.out.print("排序前:");for(int i : data) {System.out.print(" "+i);}quickSort(data,0,data.length - 1);System.out.println();System.out.print("排序后:");for(int i : data) {System.out.print(" "+i);}}public static void quickSort(int[] data, int low, int high) { int i = low; int j = high;if(low < high) {//key:作为比较的元素  int key = data[low]; // 从数组两端交替地向中间扫描;i从左边开始,j从右边开始 while (i < j) {  while (i < j && data[j]  > key) {//从右边查找  j--;   }  if (i < j) {  //找到比key小的,移动到左边  data[i] = data[j];  i++;  }  while (i < j && data[i] < key) {//从左边查找  i++;  }  if (i < j) {  // 找到比key大的,移动到右边  data[j] = data[i];  j--;  } } //key移动到正确位置 data[i] = key; // 前半部分递归排序 quickSort(data,low, i - 1); // 后半部分递归排序 quickSort(data,i + 1,high);} }}
?

热点排行