排序
文章平均质量分 61
CmdSmith
这个作者很懒,什么都没留下…
展开
-
快速排序(Quick Sort) Java实现
快速排序(Quick Sort)快速排序(Quick Sort)的基本思想是:通过一趟排序将待排记录分割成独立的两部分其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的。快速排序优化1.优化选取枢轴 三数取中(median-of-three)法。即取三个关键字先进行排序,将中间数作为枢轴,一般是取左端、右...原创 2017-05-11 10:52:02 · 1405 阅读 · 0 评论 -
归并排序(Merge Sort)递归、非递归 Java实现
归并排序与堆排序充分利用了完全二叉树的深度为logn + 1的特性,因而效率比较高。归并排序(Merge Sort)归并排序(Merge Sort)就是利用归并的思想表现的排序方法。它的原理是假设初始序列含有n个记录,则可以看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到[n/2]([x]表示不小于x的最小整数)个长度为2或1的有序子序列;再两两归并,……,原创 2017-05-08 13:33:53 · 2502 阅读 · 0 评论 -
冒泡排序算法(Bubble Sort) Java实现
冒泡排序的基本思想:两两相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。import java.util.Arrays;import java.util.Random;/** * 冒泡排序 * */public class BubbleSort { /** * 冒泡排序 * * 从0开始往右两两比较,如果左边大于右原创 2017-05-05 16:11:14 · 1237 阅读 · 0 评论 -
简单选择排序算法(Simple Selection Sort) Java实现
简单选择排序算法简单选择排序算法(Simple Selection Sort)就是通过n-1次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1≦i≦n)个记录交换之。import java.util.Arrays;import java.util.Random;/** * 简单选择排序算法 * */public class SimpleSelect原创 2017-05-05 16:14:19 · 902 阅读 · 0 评论 -
直接插入排序算法(Straight Insertion Sort) Java实现
直接插入排序算法直接插入排序(Straight Insertion Sort)的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表import java.util.Arrays;import java.util.Random;/** * 直接插入排序算法 * * 与冒泡、简单排序时间复杂度相同,但是比后两者性能要好 * * 数组下标为0原创 2017-05-05 16:24:17 · 661 阅读 · 0 评论 -
希尔排序算法(Shell Sort) Java实现
希尔排序(Shell Sort)是对直接插入排序改进后的版本,可以增加效率所谓基本有序,就是小的关键字基本在前面,大的基本在后面,不大不小的基本在中间。将相距某个“增量”的记录组成一个子序列,这样才能保证在子序列内分别进行直接插入排序后得到的结果是基本有序而不是局部有序import java.util.Arrays;import java.util.R原创 2017-05-05 16:29:24 · 673 阅读 · 0 评论 -
堆排序算法(Heap Sort) Java实现
堆(Heap)堆是具有下列性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如果按照层序遍历的方式给结点从1开始编号,则结点之间满足如下关系:堆排序(Heap Sort)堆排序就是利用堆(假设利用大顶堆)进行排序的方法。它的基本思想是,将待排序的序列构造成一个大顶堆。此时,整个序列的最大原创 2017-05-05 16:37:33 · 646 阅读 · 0 评论 -
排序算法总结
排序的稳定性经过对总分的降序排序后,总分高的排在前列。,此时对于令狐冲和张无忌而言,未排序时是令狐冲在前,那么他们总分排序后,分数相等的令狐冲依然应该在前,这样才算是稳定的排序,如果他们二者颠倒了,则此排序是不稳定的了。排序算法总结根据排序过程中借助的主要操作,我们将内排序分为:插入排序、交换排序、选择排序和归并排序四类。将七种算法的各种指标进行对比原创 2017-05-11 13:43:46 · 409 阅读 · 0 评论