package com.Head.Swift;
//快速排序
public class Main {
public static void main(String[] args) {
int []a = new int[]{34,23,1,45,64,67,43,5,98,29};
sorts(a,0,a.length-1);//对数组a进行升序排列
//输出数组
for( int i:a ) {
System.out.print(i+" ");
}
}
public static void sorts(int []a , int Left , int Right ) {
if( Left < Right ) { //判断是否满足左边坐标小于右边坐标
int temp = a[Left]; //取当前排序数中第一个数为基准数
int i = Left; //当前数中最左边元素坐标
int j = Right; //当前数种最右边元素坐标
while( i < j ) { //判断是否满足左边坐标小于右边坐标
while( i < j && a[j] >= temp ) { //当右边数大于基准数时,进行下一次判断
j--;
}
if( i < j ) { //判断是否满足左边小于右边
a[i++] = a[j]; //当右边数小于基准数时,把当前数放到前面
}
while( i < j && a[i] < temp) { //当左边数不大于基准数时,进行下次判断
i++;
}
if( i < j ) { //判断是否满足左边小于右边
a[j--] = a[i]; //当左边数大于基准数时,把当前数放到后面
}
}
a[i] = temp; //当左边等于右边时,跳出上述循环,把基准值放入当前空缺位置
sorts(a,Left,i-1); //对当前基准数前面的数进行排序
sorts(a,i+1,Right); //对当前基准数后面的书进行排序
}
}
}
java快速排序算法
最新推荐文章于 2023-06-04 10:54:50 发布