Chapter 6 排序
Chapter 6 排序

1- 直接插入排序 O(n2) O(1)
2- 折半插入排序 O(n2) O(1)
适合关键字较多
3- 希尔排序O(nlogn) O(1)
又名,缩小增量排序
4- 冒泡排序O(n2) O(1)
一趟排序后一个关键字到达最终位置
5- 快速排序O(nlogn) O(nlogn)栈
一趟排序后一个关键字到达最终位置
设置一个枢轴,待排序序列越接近无序效率越高
6- 简单选择排序O(n2) O(1)
一趟排序后一个关键字到达最终位置,与初始序列无关。
7- 堆排序O(nlogn) O(1)
可以看成一棵完全二叉树。适合关键字很多,e.g.从10000个挑10个最小的
8- 二路归并排序O(nlogn) O(n)
与初始序列无关
9- 基数排序O(d(n+rd)) O(rd)
高位有序,低位有序
总结:
1 时间复杂度
“快些以nlogn的速度归队”(快排,希尔,归并,堆)
2 空间复杂度
快排O(nlogn)
归并O(n)
基数O(rd)
3 容易插 直接插入
起的好 冒泡
(都是O(n),有序)
4 稳定性:考研情绪不稳定,快些选一堆好友聊聊天(快排,希尔,简选,堆)
5 1)一趟排序能保证一个关键字到达最终位置 交换类(2)/选择类(2)
2)关键字比较次数和原始序列无关 ---- 简选,折半
3)排序趟数和原始序列无关 ---- 交换类(2)
直接插入 – 顺序查找
折半插入 – 折半查找
6 内部排序算法应用:
1)n较小:直接插入/简选
2)基本有序:直接插入/冒泡
3)n较大:选择O(nlogn)的“快些归队”
4)n很大:关键字位数较少可分解:基数排序

Chapter 6 排序的更多相关文章
- Chapter 9 (排序)
1.排序算法: //****************************Sort.h******************************************** #ifndef SOR ...
- 《算法导论》 — Chapter 7 高速排序
序 高速排序(QuickSort)也是一种排序算法,对包括n个数组的输入数组.最坏情况执行时间为O(n^2). 尽管这个最坏情况执行时间比較差.可是高速排序一般是用于排序的最佳有用选择.这是由于其平均 ...
- MySQL Crash Course #03# Chapter 5. 6 排序. BETWEEN. IS NULL
索引 排序检索的数据 SQL 过滤 vs. 应用程序过滤 简单 Where 补充:大小写敏感. BETWEEN. IS NULL Sorting Retrieved Data mysql> SE ...
- 《算法导论》 — Chapter 8 线性时间排序
序 到目前为止,关于排序的问题,前面已经介绍了很多,从插入排序.合并排序.堆排序以及快速排序,每一种都有其适用的情况,在时间和空间复杂度上各有优势.它们都有一个相同的特点,以上所有排序的结果序列,各个 ...
- Chapter 5. Label and Entry Widgets 标签和输入部件
Chapter 5. Label and Entry Widgets 标签和输入部件 有时候,你需要用户输入特定的信息,比如他们的名字,地址或者 甚至序号. 简单的方式来实现这个是使用Enry 部件 ...
- 利用ArrayList对Hashtable其进行排序
前言: 最近在使用Hashtable的时候发现一个问题:就是当你对Hashtable进行遍历的时候整个输出结果是毫无顺序的, 上网查了一下说是Hashtable有自己内部的排序机制,如果要自定义排序的 ...
- Chapter 1 Securing Your Server and Network(8):停止未使用的服务
原文:Chapter 1 Securing Your Server and Network(8):停止未使用的服务 原文出处:http://blog.csdn.net/dba_huangzj/arti ...
- MVC 5 的 EF6 Code First 入门 系列:排序、筛选和分页
这是微软官方SignalR 2.0教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第三篇:排序.筛选 ...
- Java温故而知新-冒泡法排序
冒泡法排序是各种初学者在学习数组与循环结构时都会练习的一种简单排序算法. 冒泡法的精髓在于比较相邻的两个元素,较大的元素会不断的排到队伍后面去,就像水里的泡泡一样不断向上跑. 想像一下倒在一个透明玻璃 ...
随机推荐
- 服务启动脚本start_boot.sh
vim start_boot.sh #!/bin/bash usage(){ echo "$0 [start|stop|usage]" } status_springboot(){ ...
- Linux 常用命令:解压缩篇
前言 Linux常用命令中,有很多用于对文件的压缩或解压,本文将介绍这些解压缩命令中不常见却非常实用的用法. tar tar是linux中最常用的解压缩命令.tar命令可用于处理后缀名为tar,tar ...
- php 查看linux服务器的磁盘使用情况
- Android 开发 框架系列 OkHttp文件下载功能实现(含断点续传)
前言 此篇博客只是下载功能的记录demo,如果你还不太了解okhttp可以参考我的另一篇博客https://www.cnblogs.com/guanxinjing/p/9708575.html 代码部 ...
- springboot2.0整合springsecurity前后端分离进行自定义权限控制
在阅读本文之前可以先看看springsecurity的基本执行流程,下面我展示一些核心配置文件,后面给出完整的整合代码到git上面,有兴趣的小伙伴可以下载进行研究 使用maven工程构建项目,首先需要 ...
- LeetCode第二题—— Add Two Numbers(模拟两数相加)
Description: You are given two non-empty linked lists representing two non-negative integers. The di ...
- [JZOJ6341] 【NOIP2019模拟2019.9.4】C
题目 题目大意 给你一颗带点权的树,后面有许多个询问\((u,v)\),问: \[\sum_{i=0}^{k-1}dist(u,d_i) \ or \ a_{d_i}\] \(d\)为\(u\)到\( ...
- 1002CSP-S模拟测试赛后总结
晚上 我死了.T1全场AC只有我爆零了?? 还非常中二地写了个代码注释: 水题不假,但你不知道题水你更水么?? 碰到简单题就掉以轻心??还告诉自己不要掉以轻心…… 这下是真的滑天下之大稽了吧. 读题不 ...
- 全球轮3——cf1148
c——贪心构造题 /* 1 [n/2+1,n] 2 [n/2+2,n] ... n/2 [n,n] n/2+1 [1,1] n/2+2 [1,2] ... n [1,n/2] ai要换到位置ai上,用 ...
- kmp变形,带通配符的kmp——华科校赛E 好题
https://blog.csdn.net/a302549450/article/details/80948741?tdsourcetag=s_pctim_aiomsg 上面是题解的链接.., 其实和 ...