Java经典排序算法
Java经典排序算法
字节卷动
字节卷动 | CSDN博客专家
博客知识包括:Android、ASM、OpenGL、C++、Java、Python、Shell、Jenkins、Gitlab、Git、SVN等相关进阶知识。
展开
-
我的Java开发学习之旅------>Java经典排序算法之冒泡排序
冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。一、算法原理 冒泡排序算法的运作如下:1、比较相邻的元素。如果第一个比第原创 2015-06-18 02:02:52 · 2545 阅读 · 2 评论 -
我的Java开发学习之旅------>Java经典排序算法之归并排序
一、归并排序归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并过程为:比较a[i]和a[j]的大小,若a[i]≤a[j],则将第一个有序表中的元素a[i]复制到r[k]中,原创 2015-06-24 18:33:44 · 1903 阅读 · 0 评论 -
我的Java开发学习之旅------>Java经典排序算法之希尔排序
一、希尔排序(Shell Sort)希尔排序(Shell Sort)是一种插入排序算法,因D.L.Shell于1959年提出而得名。Shell排序又称作缩小增量排序。二、希尔排序的基本思想希尔排序的中心思想就是:将数据进行分组,然后对每一组数据进行排序,在每一组数据都有序之后 ,就可以对所有的分组利用插入排序进行最后一次排序。这样可以显著减少交换的次数,以达到加快排序速度的原创 2015-06-19 01:08:47 · 2372 阅读 · 1 评论 -
我的Java开发学习之旅------>Java经典排序算法之快速排序
一、算法思想 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。(1) 分治法的基本思想 分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。(2)快速排序的原创 2015-06-24 16:24:14 · 1648 阅读 · 0 评论 -
我的Java开发学习之旅------>Java经典排序算法之二分插入排序
一、折半插入排序(二分插入排序)将直接插入排序中寻找A[i]的插入位置的方法改为采用折半比较,即可得到折半插入排序算法。在处理A[i]时,A[0]……A[i-1]已经按关键码值排好序。所谓折半比较,就是在插入A[i]时,取A[i-1/2]的关键码值与A[i]的关键码值进行比较,如果A[i]的关键码值小于A[i-1/2]的关键码值,则说明A[i]只能插入A[0]到A[i-1/2]之间,故原创 2015-06-24 14:35:09 · 3724 阅读 · 2 评论 -
我的Java开发学习之旅------>Java经典排序算法之选择排序
一、算法原理对比数组中前一个元素跟后一个元素的大小,如果后面的元素比前面的元素小则用一个变量k来记住他的位置,接着第二次比较,前面“后一个元素”现变成了“前一个元素”,继续跟他的“后一个元素”进行比较如果后面的元素比他要小则用变量k记住它在数组中的位置(下标),等到循环结束的时候,我们应该找到了最小的那个数的下标了,然后进行判断,如果这个元素的下标不是第一个元素的下标,就让第一个元素跟他交换一原创 2015-06-18 12:11:57 · 1920 阅读 · 0 评论 -
我的Java开发学习之旅------>Java经典排序算法之插入排序
所谓插入排序法,就是检查第i个数字,如果在它的左边的数字比它大,进行交换,这个动作一直继续下去,直到这个数字的左边数字比它还要小,就可以停止了。插入排序法主要的回圈有两个变数:i和j,每一次执行这个回圈,就会将第i个数字放到左边恰当的位置去。二、算法描述1、从第一个元素开始,该元素可以认为已经被排序。2、取出下一个元素,在已经排序的元素序列中从后向前扫描。3、如果该元素(已排序)大于新元素,则将该元素移到下一位置。4、重复步骤3,直到找到已排序的元素小于或者大于新元素的位置。5、将新元素插入到原创 2015-06-18 14:37:11 · 1627 阅读 · 0 评论 -
我的Java开发学习之旅------>Java利用Comparator接口对多个排序条件进行处理
一需求二实现Comparator接口三验证排序结果验证第一条件首先按级别排序级别最高的排在前面验证第二条如果级别相等那么按工资排序工资高的排在前面验证第三条如果工资相当则按入职年数排序入职时间最长的排在前面附录javautilComparator接口源代码一、需求 假设现在有个如此的需求:需要对一个这样的雇员列表进行排序,排序规则如下: 1、首先级别最高的排在前面, 2、原创 2016-08-02 15:19:58 · 3655 阅读 · 2 评论