java快速排序算法

来源:互联网 发布:linux 查看ftp用户 编辑:程序博客网 时间:2024/06/08 11:08
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);      //对当前基准数后面的书进行排序}}}

1 0
原创粉丝点击