快速排序,递归算法

package homeWork;

import javax.swing.JOptionPane;

public class FastSort {

/**
* @param args
*/

public static void main(String[] args) {
// TODO Auto-generated method stub
int array[]= {37,2,6,4,89,8,10,12,68,45};
String outputString="";

outputString+="Original array: ";
for (int i = 0; i < array.length; i++) {
outputString+=array[i]+" ";
}
quickSort(array,0,array.length-1);

outputString+="/nafter qucikSort:";
for (int i = 0; i < array.length; i++) {
outputString+=array[i]+" ";
}

JOptionPane.showMessageDialog(null, outputString,"qucik sort",JOptionPane.INFORMATION_MESSAGE);

System.exit(0);
}

public static void quickSort(int array[],int start,int end) {
boolean mark=false;
int temp;

do {
mark=false;

for(int right=end;right>=start;right--) {//右边比较,第一个小的交换
if(array[start]>array[right]) {
mark=true;

temp=array[start];//交换位置
array[start]=array[right];
array[right]=temp;
start=start+1;//新的起始位置
end=right;//新的结束位置
break;
}
}

for (int left = start; left <=end; left++) {//左边比较,第一个大的交换
if(array[end]<array[left]) {
mark=true;

temp=array[end];
array[end]=array[left];
array[left]=temp;
start=left;
end=end-1;

break;
}
}
}while(mark);

System.out.print(start+" ");
System.out.print(end);
System.out.print("/n");

if(start>0)
quickSort(array, 0, end);//左边循环
if(end<9)
quickSort(array, start, 9);//右边循环
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值