快速排序:升序+降序----java实现
2014-04-03 23:23
435 查看
快速排序思路:先把第一个元素令为low下标,最后一个为high下标。并把第一个元素令为temp来作为标准元素。以标准元素来调整数组,使比标准元素小的都在标准元素前,比标准元素大的都在标准元素后。这样一次排序后,有两个好处:1.标准元素找到了它自己在该元素中的位置;2.把数组分成了以标准元素为分隔的两个子数组。然后分别对两个子数组采用相同的排序方法。那么明显就递归咯~~~
一:升序快排
二:降序快排
一:升序快排
package com.sheepmu.text; import java.util.Arrays; /* * @author sheepmu */ public class Sort { public static void main(String[] args){ int[] arr={60,55,48,37,10,90,84,36}; int len=arr.length; quickSort(arr,0,len-1); System.out.println("升序快排后----->"+Arrays.toString(arr)); } public static void quickSort(int[] arr,int low,int high){ int i,j,temp; i=low;//低端下标 j=high;//高端下标 temp=arr[i];//取第一个元素为标准元素。 while(i<j){//递归出口是 low>=high while(i<j&&temp<=arr[j]) //在数组的后端扫描 j--;//移动后j再减了一个,即在temp前一个咯 if(i<j){ arr[i]=arr[j]; i++; } while(i<j&&arr[i]<temp) //在数组的左端扫描 i++; if(i<j){ arr[j]=arr[i]; j--; } }//while完,即第一盘排序 arr[i]=temp;//把temp值放到它该在的位置。 // System.out.println("第 次排序----->"+Arrays.toString(arr)); if(low<i) quickSort(arr,low,i-1);//对左端子数组递归 if(i<high) quickSort(arr,j+1,high);//对右端子数组递归 } }
二:降序快排
import java.util.Arrays; /* * @author sheepmu */ public class Sort { public static void main(String[] args){ int[] arr={60,55,48,37,10,90,84,36}; int len=arr.length; quickSort(arr,0,len-1); System.out.println("降序快排后----->"+Arrays.toString(arr)); } public static void quickSort(int[] arr,int high,int low){ int i,j,temp; i=high;//高端下标 j=low;//低端下标 temp=arr[i];//取第一个元素为标准元素。 while(i<j){//递归出口是 low>=high while(i<j&&temp>arr[j])//后端比temp小,符合降序,不管它,low下标前移 j--;//while完后指比temp大的那个 if(i<j){ arr[i]=arr[j]; i++; } while(i<j&&temp<arr[i]) i++; if(i<j){ arr[j]=arr[i]; j--; } }//while完,即第一盘排序 arr[i]=temp;//把temp值放到它该在的位置。 if(high<i) //注意,下标值 quickSort(arr,high,i-1);//对左端子数组递归 if(i<low) //注意,下标值 quickSort(arr,i+1,low);//对右端子数组递归 ;对比上面例子,其实此时i和j是同一下标!!!!!!!!!!!!! } }
相关文章推荐
- 快速排序:升序+降序----java实现
- 4、 排序有哪几种方法?请列举。并用JAVA实现一个快速排序.
- Java程序员从笨鸟到菜鸟(二)Java实现冒泡排序、快速排序、插入排序、选择排序等基本排序方式
- 【排序系列】快速排序java实现
- java 递归实现快速排序
- 快速排序 Java实现-数组-链表
- 快速排序的两种实现方式(Java)
- 快速排序(Quick Sort) Java实现
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- 快速排序的一种java实现
- 快速排序的java实现(key的位置可任取)
- 笔记:快速排序的java实现,递归的实现
- JAVA排序算法实现代码-快速(Quick Sort)排序
- Java实现之快速排序
- Java简单实现快速排序
- java简单实现冒泡 快速 选择排序
- 8大内部排序算法学习笔记--(2)快速排序 Java实现
- 用JAVA代码实现快速排序
- 快速排序JAVA实现
- Java实现快速排序