新闻中心> 文章详情
上次南京万和Java培训和大家介绍了Java程序员必须掌握的8大排序算法的上篇,今天咱接着介绍下篇,这些排序算法就是基础中的基础,程序员必看哦!
相关阅读:南京Java培训分享:Java程序员必须掌握的8大排序算法(上)
5、冒泡排序
(1)基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
(2)实例:
(3)用java实现
6、快速排序
(1)基本思想:选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。有疑惑,咨询南京万和Java培训。
(2)实例:
上图中将待排序列分成两部分,一部分比基准元素小,一部分大于基准元素,然后对这两部分重复上图的求解过程。
(这只是快速排序的一种实现方式,个人认为比较容易理解)
(3)用java实现
7、归并排序
(1)基本排序:归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。有疑惑,咨询南京万和Java培训。
(2)实例:
(3)用java实现
8、基数排序
(1)基本思想:将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后,数列就变成一个有序序列。
(2)实例:
稳定性说明:排序前,2(或者更多)个相等的数在序列的前后位置顺序和排序后它们在序列中的前后位置顺序一样。
实例:
待排序数列:5,4,8,6,1,8,7,9
排序结果:1,4,5,6,7,8,8,9
稳定:1,4,5,6,7,8,8,9
不稳定:1,4,5,6,7,8,8,9
说明:对比红色的8和紫色的8,看他们排序前后的位置。排序前,红8在紫8前面,如果排序后红8仍然在紫8前面,则排序算法稳定,否则不稳定。
想和兴趣相投的朋友们一起交流吗?那就来江苏万和计算机培训中心吧。而江苏万和作为南京专业的Java培训中心,欢迎广大有志于此行业发展的学员们加入。