![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
wenzi0615
这个作者很懒,什么都没留下…
展开
-
冒泡排序(Bubble Sort)
/** * 1.1 冒泡排序: 在要排序的一组数中,对当前还未排好序的范围内的全部数, * 自上而下对相邻的两个数依次进行比较和调整,较小的往上冒,较大的下沉. * * EX: int[] nums={8,1,4,2,23,10}; < * * 1,8,4,2,23,10 *原创 2016-10-19 05:02:38 · 329 阅读 · 0 评论 -
(直接)插入排序(Insert Sort)
/** * 3.1 直接插入排序: 每步将一个待排序的记录,按其顺序码大小插入到前面已经 * 排序的字序列的合适位置(从后向前找到合适位置后),直到全部插入排序完为止 * * EX: int[] nums={8,1,4,2,23,10}; < * * 8,1,4,2,23,10 *原创 2016-10-19 05:09:05 · 487 阅读 · 1 评论 -
排序算法: 时间复杂度、空间复杂度、稳定性总结
参考: http://bigocheatsheet.com/原创 2016-10-20 03:41:56 · 255 阅读 · 0 评论 -
基数排序(Radix)
/** * 5. 基数排序: 将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零. * 从最低位开始,依次进行一次排序;这样从最低位排序一直到最高位排序完成以后,数列就变成一个有序序列. * * 步骤: * (1)找到最大数 * (2)确定最大数的位数 * (3)把数组中的所有数都修改成为最大位数形式的,高位用原创 2016-10-20 02:59:00 · 258 阅读 · 0 评论 -
归并排序(Merge Sort)
/** * 4. 归并排序: 归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表, * 即把待排序序列分为若干个子序列,每个子序列是有序的,然后再把有序子序列合并为整体有序序列. * * 步骤: * (1)用除二来划分数组,对最小单位为二的数组排序 * (2)合并两个数组并排序,具体方法为: * 在两原创 2016-10-20 02:47:11 · 341 阅读 · 0 评论 -
希尔排序(Shell Sort)
/** * 3.3 希尔排序: 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组; * 所有距离为d1的倍数的记录放在同一个组中,先在各组内进行直接插入排序; * 取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1); * 即所有记录放在同一组中进行直接插入排序为止,该方法实质上是一种分组插入原创 2016-10-20 02:45:51 · 574 阅读 · 0 评论 -
二分法插入排序(Binary Sort)
/** * 3.2 二分法插入排序: 按二分法找到合适的位置,可以减少比较的次数. * * EX: int[] nums={8,1,4,2,23,10}; < * * 8,1,4,2,23,10 * | * 1,8,4,2,23原创 2016-10-20 02:44:28 · 749 阅读 · 0 评论 -
堆排序(Heap Sort)
/** * 2.2 堆排序: 堆排序是一种树形选择排序,是对直接选择排序的有效改进; * 堆的定义: 具有n个元素的序列 (h1,h2,...,hn),当且仅当满足 * (hi>=h2i,hi>=2i+1)(大顶堆) 或 (hi<=h2i,hi<=2i+1)(小顶堆) (i=1,2,...,n/2)时称之为堆, * 即任何一非叶节点的大于等于或者小于等于其左右原创 2016-10-19 05:08:13 · 271 阅读 · 0 评论 -
简单选择排序(Simple Selection Sort)
/** * 2.1 简单选择排序: 在要排序的一组数中,选出最小的一个数与第一个位置的数交换; * 然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最 * 后一个数比较为止. * * EX: int[] nums={8,1,4,2,23,10}; < * * 8,1(m原创 2016-10-19 05:06:17 · 267 阅读 · 0 评论 -
快速排序(Quick Sort)
/** * 1.2 快速排序: 首先任意选取一个数据(通常选第一个)作为关键数据, * 然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面, * 即确定该数的最终位置,该数两边为两个区间,在它们中各找一个关键 * 数据继续进行前面的操作,直到所有区间都只有一个数为止,表示所有数 * 的最终位置都被确定 * * 一趟快速原创 2016-10-19 05:04:48 · 353 阅读 · 0 评论 -
9种常见排序算法总结
目录 1. 交换排序: 冒泡排序,快速排序. 2. 选择排序: 简单选择排序,堆排序. 3. 插入排序: 直接插入排序,二分法插入排序,希尔排序. 4. 归并排序 5. 基数排序import java.util.ArrayList;import java.util.List;public class Sort { /** * 1. 交换排序:冒泡排序,快速排序.原创 2016-10-20 03:58:29 · 357 阅读 · 0 评论