排序与查找

来源:互联网 发布:如何进入淘宝vip商场 编辑:程序博客网 时间:2024/05/16 03:12

查找分为:1、静态表查找   2、 动态表的查找

静态表的查找有 1) 顺序表的查找  2)有序表的查找  3)索引表的查找

顺序表的查找就是  按照顺序一个一个的与关键字进行比较 平均查找长度 1+2+3+......n

有序表的查找:二分查找  平均查找长度的计算 利用二叉判定树

索引表的查找:表分成b块,每块s个元素  提取每块最大的元素建立索引  索引是有序的 标明最大元素在表中的位置

平均查找长度:索引查找长度+块内元素查找长度 索引的查找采用顺序表或者二分查找  块内元素用顺序表的查找

-------------------------------------------------------------------------------------

动态表的查找:

1) 二叉排序树:

小的在左边,大的在右边 不唯一 根据给定的关键字序列确定   与二分查找过程类似

2)平衡二叉树 :

每个节点的平衡因子 为 0、-1、1 深度为h的平衡二叉树至少有Nh-1 +Nh-2 +1 个节点

一般我们建立二叉排序树的时候都期望建立为AVL树  所以在建立过程中需要动态调整。

----------------------------------------------------------------------------------------------------------------

排序:内部排序

1、插入排序:

直接插入排序:是稳定的,空间复杂度o(1)

折半插入排序:稳定的

希尔排序:不稳定

2、交换排序:

冒泡排序:稳定  快速排序:不稳定

3、选择排序:

简单选择排序 不稳定 堆排序:大根堆 小根堆 先建立堆 然后输出堆顶元素再调整 用最后的元素去替代堆顶元素 从n/2元素开始往前调整。不稳定

4、2路归并 稳定  5、基数排序 稳定





0 0
原创粉丝点击