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

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。也就是说不管是多少的数字,平均总是有一个数与顺序是相同的。

最新文章

  1. required
  2. CentOS 安装 Dubbo 管理控制台
  3. PHP自带Session隐患(session文件独占锁引起阻塞)
  4. Scikit-Learn模块学习笔记——数据预处理模块preprocessing
  5. c#数据类型之值类型和引用类型
  6. Java设计模式——组合模式
  7. 【Pro ASP.NET MVC 3 Framework】.学习笔记.3.MVC的主要工具-单元测试
  8. hosts文件导致打不开某些网站
  9. 关于HTML中浮动与清除的思考
  10. 老oj2146 && Pku2135 Farm Tour
  11. 字符设备驱动4: ioremap
  12. c#和UDP SOCKET广播
  13. ASP.NET MVC应用程序展示RDLC报表
  14. Cs Round#54 D Spanning Trees
  15. 【ARTS】01_16_左耳听风-20190225~20190303
  16. git push 提交某一个commit
  17. ICANN认证注册商小全 英、德、法
  18. 实现自定义Session
  19. Spring源码分析(十二)FactoryBean的使用
  20. linux convert命令安装及使用

热门文章

  1. 写给 Linux 初学者的一封信
  2. Ubuntu18.04完全卸载mysql5.7并安装mysql8.0的安装方法
  3. Py变量,递归,作用域,匿名函数
  4. TCP服务器程序
  5. SDNU_ACM_ICPC_2021_Winter_Practice_4th [个人赛]
  6. 详解SpringMVC
  7. Nginx配置代理gRPC的方法
  8. udp 连接
  9. libco协程原理简要分析
  10. Web信息收集-目标扫描-Nmap