快速排序 quick sort
来源:互联网 发布:ubuntu安装新立得 编辑:程序博客网 时间:2024/06/10 22:24
package com.action;
public class Test {
//increase quick sort
public static void quickSort(String []strData,int left, int right){
String temp;
int mid=(left+right)/2;
int i=left, j=right;
do{
while(strData[i].compareTo(strData[mid])<0&&i<right){
i++;
}
while(strData[j].compareTo(strData[mid])>0&&left<j){
j--;
}
if(i<=j){
temp=strData[i];
strData[i]=strData[j];
strData[j]=temp;
i++;
j--;
}
}while(i<=j);
//终止条件
if(i<right){
quickSort(strData,i,right);
}
if(j>left){
quickSort(strData,left,j);
}
}
//descend quick sort
public static void descSort(String [] data,int left,int right){
int i=left;
int j=right;
int mid=(left+right)/2;
String temp;
do{
while(data[i].compareTo(data[mid])>0 && i<right){
i++;
}
while(data[j].compareTo(data[mid])<0 && j>left){
j--;
}
if(i<=j){
temp=data[i];
data[i]=data[j];
data[j]=temp;
i++;
j--;
}
}while(i<=j);
if(i<right){
descSort(data,i,right);
}
if(j>left){
descSort(data,left,j);
}
}
public static void main(String[] args){
String[] str={"2","1","5","2","5","2","1","5"};
//注意,这里调用的时候,right参数是字符数组长度减一
Test.quickSort(str, 0, str.length-1);//increase
Test.descSort(str, 0, str.length-1);//descend
for(int i=0;i<str.length;i++){
System.out.println(str[i]);
}
}
}
public class Test {
//increase quick sort
public static void quickSort(String []strData,int left, int right){
String temp;
int mid=(left+right)/2;
int i=left, j=right;
do{
while(strData[i].compareTo(strData[mid])<0&&i<right){
i++;
}
while(strData[j].compareTo(strData[mid])>0&&left<j){
j--;
}
if(i<=j){
temp=strData[i];
strData[i]=strData[j];
strData[j]=temp;
i++;
j--;
}
}while(i<=j);
//终止条件
if(i<right){
quickSort(strData,i,right);
}
if(j>left){
quickSort(strData,left,j);
}
}
//descend quick sort
public static void descSort(String [] data,int left,int right){
int i=left;
int j=right;
int mid=(left+right)/2;
String temp;
do{
while(data[i].compareTo(data[mid])>0 && i<right){
i++;
}
while(data[j].compareTo(data[mid])<0 && j>left){
j--;
}
if(i<=j){
temp=data[i];
data[i]=data[j];
data[j]=temp;
i++;
j--;
}
}while(i<=j);
if(i<right){
descSort(data,i,right);
}
if(j>left){
descSort(data,left,j);
}
}
public static void main(String[] args){
String[] str={"2","1","5","2","5","2","1","5"};
//注意,这里调用的时候,right参数是字符数组长度减一
Test.quickSort(str, 0, str.length-1);//increase
Test.descSort(str, 0, str.length-1);//descend
for(int i=0;i<str.length;i++){
System.out.println(str[i]);
}
}
}
0 0
- 快速排序 Quick Sort
- 快速排序(Quick sort)
- quick sort 快速排序
- 快速排序(Quick Sort)
- 快速排序(Quick Sort)
- Quick Sort (快速排序)
- 快速排序(Quick-Sort)
- 快速排序Quick sort
- 快速排序 (Quick Sort)
- 快速排序(Quick Sort)
- Quick Sort 快速排序
- 快速排序(quick sort)
- 快速排序 quick sort
- 快速排序 quick sort
- 快速排序 quick sort
- Quick Sort快速排序
- 快速排序(quick-sort)
- quick sort 快速排序
- C++ Primer, 5th Edition Exercise CH1
- HTTP 401 Unauthorized错误--路由器页面获取
- leetcode Candy
- apahce安全配置
- Longest Palindromic Substring
- 快速排序 quick sort
- Java应用级产品开发平台APDPlat
- Powerdesigner与数据库同步(比较新旧数据库的架构)
- android之对话框的使用
- Appledoc 安装
- Java代码规范
- listview图片错乱问题解决
- 大学四年&三年技术旅途
- Make ADB To Support Android Devices(如何使ADB在Linux下支持Android设备的udev规则配置)