JAVA排序算法(1)
package com.test;
public class TestTwo {
//测试用例
public static void main(String args[]){
int[] array=new int[]{1,2,5,9,0,4,3};//定义一个数组
Rank(array, 0, array.length-1);//调用排序
for(int i=0;i<array.length;i++){
System.out.print(array[i]);//输出排序之后的数组
}
}
//排序算法
public static void Rank(int[] data,int low,int high){
int middle=data[(low+high)/2];//取中间节点数据
int i=low;//定义起点
int j=high;//定义终点
do{
while(data[i]<middle&&i<high) i++;//前一部分
while(data[j]>middle&&j>low) j--;//后一部分
if (i <= j)//交换数据
{
int temp=data[i];
data[i]=data[j];
data[j]=temp;
i++;
j--;
}
}while(i<=j);
// 递归对比分割点元素都小的那个序列进行快速排序
if(j>low){
Rank(data, low, j);
}
// 递归对比分割点元素都大的那个序列进行快速排序
if(i<high){
Rank(data, i, high);
}
}
}
输出结果:0123459
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。