马锦涛

2021-02-28   阅读量: 493

Python

快速排序原理

扫码加入数据分析学习群

排序原理:

1.首先设定一个分界值,通过该分界值将数组分成左右两部分;

2.将大于或等于分界值的数据放到到数组右边,小于分界值的数据放到数组的左边。此时左边部分中各元素都小于

或等于分界值,而右边部分中各元素都大于或等于分界值;

FileInputStream("reverse_merge_shell.txt"))); String line=null; while((line=reader.readLine())!=null){ //把每一个数字存入到集合中 list.add(Integer.valueOf(line)); }reader.close(); //把集合转换成数组 Integer[] arr = new Integer[list.size()]; list.toArray(arr); // testMerge(arr);//使用归并排序耗时:1200 testShell(arr);//使用希尔排序耗时:1277 }public static void testMerge(Integer[] arr){ //使用插入排序完成测试 long start = System.currentTimeMillis(); Merge.sort(arr); long end= System.currentTimeMillis(); System.out.println("使用归并排序耗时:"+(end-start)); }public static void testShell(Integer[] arr){ //使用希尔排序完成测试 long start = System.currentTimeMillis(); Shell.sort(arr); long end = System.currentTimeMillis(); System.out.println("使用希尔排序耗时:"+(end-start)); } } 67891011121314151617181920212223242526272829303132333435

北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090

类名 Quick

构造

方法 Quick():创建Quick对象

成员

方法

1.public static void sort(Comparable[] a):对数组内的元素进行排序

2.private static void sort(Comparable[] a, int lo, int hi):对数组a中从索引lo到索引hi之间的元素

进行排序

3.public static int partition(Comparable[] a,int lo,int hi):对数组a中,从索引 lo到索引 hi之间的元

素进行分组,并返回分组界限对应的索引

4.private static boolean less(Comparable v,Comparable w):判断v是否小于w

5.private static void exch(Comparable[] a,int i,int j):交换a数组中,索引i和索引j处的值

3.然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两

部分,同样在左边放置较小值,右边放置较大值。右侧的数组数据也可以做类似处理。

4.重复上述过程,可以看出,这是一个递归定义。通过递归将左侧部分排好序后,再递归排好右侧部分的顺序。当

左侧和右侧两个部分的数据排完序后,整个数组的排序也就完成了。


添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
52.1739 1 0 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子