2022
我们一起努力

java中怎么实现快速排序 - 大数据

这篇文章给大家介绍java中怎么实现快速排序,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

一、原理

    选择一个关键值作为基准值。比基准值小的都在左边序列(一般是无序的),比基准值大的都在右边(一般是无序的)。一般选择序列的第一个元素。

二、描述

    一次循环:从后往前比较,用基准值和最后一个值比较,如果比基准值小的交换位置,如果没有继续比较下一个,直到找到第一个比基准值小的值才交换。找到这个值之后,又从前往后开始比较,如果有比基准值大的,交换位置,如果没有继续比较下一个,直到找到第一个比基准值大的值才交换。直到从前往后的比较索引>从后往前比较的索引,结束第一次循环,此时,对于基准值来说,左右两边就是有序的了。重复上述循环。

三、实例

public class maxtest {	public static void main(String[] args) {		//###################快速排序法start###################//int[] state = {2,13,7,6,15,9,10,12,3,16,8,11,14,5,1};		int start = 0;		int end = state.length-1;
		System.out.print("初始值:");		for (int i = 0; i < state.length; i++) {
			System.out.print(state[i]+",");
		}
		System.out.println("");
		
		sort(state,start,end);		//###################快速排序法end###################//
	}	
	public static int partition(int []array,int lo,int hi){//固定的切分方式int key=array[lo];while(lo<hi){while(array[hi]>=key&&hi>lo){//从后半部分向前扫描hi--;
            }
            array[lo]=array[hi];while(array[lo]<=key&&hi>lo){
                lo++;
            }
            array[hi]=array[lo];
        }
        System.out.println("");    	for (int i = 0; i < array.length; i++) {
			System.out.print(array[i]+",");
		}
        array[hi]=key;return hi;
    }    public static void sort(int[] array,int lo ,int hi){if(lo>=hi){return ;
        }int index=partition(array,lo,hi);
        sort(array,lo,index-1);
        sort(array,index+1,hi); 
    }
}

结果如下:

java中怎么实现快速排序 - 大数据
初始值:2,13,7,6,15,9,10,12,3,16,8,11,14,5,1,1,13,7,6,15,9,10,12,3,16,8,11,14,5,13,1,2,5,6,3,9,10,12,9,16,8,11,14,15,13,1,2,3,6,6,7,10,12,9,16,8,11,14,15,13,1,2,3,5,6,7,8,9,9,16,12,11,14,15,13,1,2,3,5,6,7,8,9,10,16,12,11,14,15,13,1,2,3,5,6,7,8,9,10,13,12,11,14,15,13,1,2,3,5,6,7,8,9,10,11,12,11,14,15,16,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,

图列如下:

关于java中怎么实现快速排序就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

赞(0)
文章名称:《java中怎么实现快速排序 - 大数据》
文章链接:https://www.fzvps.com/82139.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!