冒泡排序、选择排序、快速排序、插入排序、希尔排序、归并排序、基数排序以及堆排序,桶排序

https://www.cnblogs.com/Glory-D/p/7884525.html

https://baike.baidu.com/item/%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91/7077855?fr=aladdin

https://baike.baidu.com/item/%E4%BA%8C%E5%8F%89%E6%A0%91%E9%81%8D%E5%8E%86/9796049?fr=aladdin

https://www.cnblogs.com/gjmhome/p/11482019.html

下面是一些题。答案见

https://github.com/TouwaErioH/subjects/tree/master/C%2B%2B

 判断并证明:

1.

注意是随机快速排序

快速排序

有序(顺序或逆序的时候)或者元素都相同时n^2 (1+2+3+...+n-1)

随机化快速排序

元素相同时最差!(大雾)

因为是随机,所以与输入无关,都是nlogn

2.

5个数用比较排序,最差排几次?

https://blog.csdn.net/weixin_40113704/article/details/89509128

二叉树或信息论

log2(5!)=7

填空

1.

k叉树

https://blog.csdn.net/hacker_Dem_br/article/details/85286908

2.

选择排序和counting sort复杂度总是不变。

当已经排好序,bubble和(直接)插入排序最优。(答案是插入排序,不知道为什么,是冒泡排序的实现不同吗??)

大题:

1.

二叉树后序,前序遍历

2.

不平衡度最多为2的二叉树

画图容易理解。

类似递归。

每次用前一个高度的树作为根节点左侧的树,那么根节点右侧的树的节点数就确定了

总节点数为

1

2      1+1

3       1+2

5        1+3+(3-2)

9        1+5+(5-2)

...

xn=2*xn-1 + 1

3.

冒泡排序平均交换次数?

1. 每新加入一个数,不会影响前面n-1个数的交换次数。(bubble是稳定的)所以是f(n)=f(n-1)+(0+...+n-1)*(1/n)。故为n*(n-1)/4次交换

2.或者。考虑,n个数中任意两个数的关系为正确位置或错误位置。一共有n*(n-1)/2 组组合( C 2 N)。每组数错位不错位的概率相等为1/2,所以总的错误期望为n*(n-1)/4。

这样一次交换解决一次相邻两数的错位,一共n*(n-1)/4次交换

(比如a与b的顺序不受b与c的顺序影响)。

 给一个1-n的排列,与原来位置相同的数字的个数的期望大约是 1(如 n=5 则51324 与原来位置只有3是相同的)

直接计算也是可行的。n个数一共有n!种排列,现计算与原来位置数字相同的个数。这里用到全错位排列公式Dn=n!(1-1/1!+1/2!-1/3!+...+(-1)^n/n!),设有k个数字相同,则个数为k·C(n,k)·D(n-k),对k从1到n求和可得n!,故期望为1。

这个题要去算有几个相同的概率是比较难的,不过实际上有一个很简单的方法。在第1个位置,这个排列的第1个数字为1的概率为1/n,而期望是可加的,所以总共与原来位置相同的数字的个数的期望应该是1。也就是说不管是多少的数字,平均总是有一个数与顺序是相同的。

排序算法 以及HKU的一些数据结构 相关题目 以及 K叉树,二叉树 排列的更多相关文章

  1. JS实现常用排序算法—经典的轮子值得再造

    关于排序算法的博客何止千千万了,也不多一个轮子,那我就斗胆粗制滥造个轮子吧!下面的排序算法未作说明默认是从小到大排序. 1.快速排序2.归并排序3.冒泡排序4.选择排序(简单选择排序)5.插入排序(直 ...

  2. Python实现各种排序算法的代码示例总结

    Python实现各种排序算法的代码示例总结 作者:Donald Knuth 字体:[增加 减小] 类型:转载 时间:2015-12-11我要评论 这篇文章主要介绍了Python实现各种排序算法的代码示 ...

  3. 三种排序算法python源码——冒泡排序、插入排序、选择排序

    最近在学习python,用python实现几个简单的排序算法,一方面巩固一下数据结构的知识,另一方面加深一下python的简单语法. 冒泡排序算法的思路是对任意两个相邻的数据进行比较,每次将最小和最大 ...

  4. 用python实现各种排序算法

    最简单的排序有三种:插入排序,选择排序和冒泡排序.它们的平均时间复杂度均为O(n^2),在这里对原理就不加赘述了. 贴出源代码: 插入排序: def insertion_sort(sort_list) ...

  5. 十大排序算法总结(Python3实现)

    十大排序算法总结(Python3实现) 本文链接:https://blog.csdn.net/aiya_aiya_/article/details/79846380 目录 一.概述 二.算法简介及代码 ...

  6. 1T数据快速排序!十种经典排序算法总结

    1 冒泡排序 每次循环都比较前后两个元素的大小,如果前者大于后者,则将两者进行交换.这样做会将每次循环中最大的元素替换到末尾,逐渐形成有序集合.将每次循环中的最大元素逐渐由队首转移到队尾的过程形似&q ...

  7. 五种C语言非数值计算的常用经典排序算法

    摘要:排序是计算机的一种操作方法,其目的是将一组"无序"的记录序列调整为"有序"的记录序列,主要分为内部排序和外部排序. 排序 排序是计算机的一种操作方法,其目 ...

  8. JavaScript数据结构-2.排序算法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 数据结构与算法——常用排序算法及其Java实现

    冒泡排序 原理:依次比较相邻的两个数,将小数放在前面(左边),大数放在后面(右边),就像冒泡一样具体操作:第一趟,首先比较第1个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将小数放前 ...

随机推荐

  1. Python输出有颜色的文字

    原创链接: https://www.cnblogs.com/easypython/p/9084426.html   我们在使用python运维与开发的过程中,经常需要打印显示各种信息.海量的信息堆砌在 ...

  2. Pandas 常见操作详解

    Pandas 常见操作详解 很多人有误解,总以为Pandas跟熊猫有点关系,跟gui叔创建Python一样觉得Pandas是某某奇葩程序员喜欢熊猫就以此命名,简单介绍一下,Pandas的命名来自于面板 ...

  3. django使用缓存之drf-extensions

    使用方法:1.直接添加装饰器@cache_response该装饰器装饰的方法有两个要求: 它必须是继承了rest_framework.views.APIView的类的方法 它必须返回rest_fram ...

  4. Android 中使用 config.gradle

    各位同学大家好,当然了如果不是同学,那么大家也同好.哈哈. 大家知道config.gradle 是什么吗?我也不知道.开个完笑,其实config.gradle 就是我们为了统一gradle 中的各种配 ...

  5. iDRAC RAC0218 最大会话数

    戴尔服务器IDRAC能ping通,但是网页打不开的时候: 用putty登录: /admin1-> racadm racreset RAC reset operation initated suc ...

  6. scala/java等其他语言从CSV文件中读取数据,使用逗号','分割可能会出现的问题

    众所周知,csv文件默认以逗号","分割数据,那么在scala命令行里查询的数据: 可以看见,字段里就包含了逗号",",那接下来切割的时候,这本应该作为一个整体 ...

  7. Kepware软件基本操作及使用Java Utgard实现OPC通信

    一.环境搭建(基于win10 64位专业版) 1.Kepware 的下载.安装及使用 https://www.cnblogs.com/ioufev/p/9366877.html 2.重要:OPC 和 ...

  8. (四)整合 RocketMQ ,实现请求异步处理

    整合 RocketMQ ,实现请求异步处理 1.RocketMQ简介 1.1 架构图片 1.2 角色分类 1.3 通信机制 2.实现案例 2.1 项目结构图 2.2 配置文件 2.3 生产者配置 2. ...

  9. ShowDoc,APIDoc,可道云API,语雀-适合IT企业的文档工具

    ShowDoc,APIDoc,可道云API,语雀-适合IT企业的文档工具 一.ShowDoc官方文档及说明 1.1 它可以用来做什么 1.2 它都有些什么功能 1.3 使用在线的ShowDoc 1.4 ...

  10. SpringBoot配置文件 application.properties,yaml配置

    SpringBoot配置文件 application.properties,yaml配置 1.Spring Boot 的配置文件 application.properties 1.1 位置问题 1.2 ...