
排序算法
Tong_Nan
这个作者很懒,什么都没留下…
展开
-
排序算法(一):java实现堆排序
排序算法(一):java实现堆排序堆排序的基本思想堆排序就是利用堆(假设进行升序,也就是使用大顶堆)进行排序的方法。它的基本思想是,将待排序的序列构造成一个大顶堆。此时,整个序列的最大值就是堆顶的根结点。将其与堆数组的末尾元素交换,此时末尾元素就是最大值,然后将剩余的 n - 1 个序列重新构造成一个堆,这样就得到 n - 1个元素中的次大值。如此反复执行, 便能得到一个有序序列了 。这里...原创 2019-06-10 18:53:44 · 307 阅读 · 0 评论 -
排序算法(二):java实现归并排序
排序算法(二):java实现归并排序算法思路:分而治之(divide - conquer);每个递归过程涉及三个步骤第一, 分解: 把待排序的 n 个元素的序列分解成两个子序列, 每个子序列包括 n/2 个元素.第二, 治理: 对每个子序列分别调用归并排序MergeSort, 进行递归操作第三, 合并: 合并两个排好序的子序列,生成排序结果.这里核心的是每次的两两合并,依次从两个子序列...原创 2019-06-10 19:09:03 · 554 阅读 · 0 评论 -
排序算法(三):java实现快速排序
排序算法(三):java实现归快速排序快速排序(QuiclSort)采用分治思想分解(divide):数组A[p…r]被划分为两个(可能为空)子数组A[p…q-1]和A[q+1…r],使得A[p…q-1]中的每个元素都小于等于A[q],而A[q]也小于等于A[q+1…r]中的每个元素。其中,计算下标q也是划分过程的一部分。解决(Conquer):通过递归调用快速排序,对子数组A[p…q-1...原创 2019-06-10 19:21:04 · 252 阅读 · 0 评论 -
排序算法(四):java实现归选择排序
排序算法(四):java实现归选择排序选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。直接是双重循环,第一个循环从第一个元素开始,第二个循环从i+1开始,比较其中的值,记录下更小的元素的...原创 2019-06-10 19:29:13 · 188 阅读 · 0 评论 -
排序算法(四):java实现冒泡排序
排序算法(四):java实现冒泡排序冒泡排序比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。代码如下:public class BubbleSort { public...原创 2019-06-10 19:46:28 · 224 阅读 · 0 评论