数据结构与算法之初体验(二)算法图解部分

     承接上篇博客数据结构与算法之初体验(一),本篇博客主要总结一些与数据结构有关的算法知识。

    下面是结构图:

     

计算机生成了可选文字: 厂,、数据结构,目关算‘去{厂}序算法…、r…查找算法{‘、非序归并排序顺肩迭择排序直接插入排序冒泡排序

 

 导航列表(单击名称跳转到指定算法)

     

一、【排序算法】

1、简单排序

①选择排序

②直接插入排序

③冒泡排序

2希尔排序

3快速排序

4堆排序

5归并排序

6基数排序

二、【查找算法】

1顺序查找

2二分查找

3分块查找

 

 

选择排序

 

直接插入排序

 

 

 

冒泡排序

希尔排序

快速排序

          对冒泡排序的一种本质的改进。通过一趟扫视后,使待排序序列的长度能大幅度的减少。在一趟扫视后,使某个结点移到中间的正确位置,并使在它左边序列的结点的键值都比它的小,而它右边序列的结点的键值都不比它的小。称这样一次扫视为“划分”。每次划分使一个长序列变成两个新的较小子序列,对这两个小的子序列分别作同样的划分,直至新的子序列的长度为1使才不再划分。当所有子序列长度都为1时,序列已是排好序的了。

 

堆排序

               一种树形选择排序,是对直接选择排序的有效改进。一个堆是这样一棵顺序存储的二叉树,它的所有父结点(e[i])的键值均不小于它的左子结点(e[2*i+1])和右子结点

(e[2*i+2])的键值。初始时,若把待排序序列的n个结点看作是一棵顺序存储的二叉树,调整它们的存储顺序,使之成为一个堆,这时堆的根结点键值是最大者。然后将根结点与堆的最后一个结点交换,并对少了一个结点后的n-1结点重新作调整,使之再次成为堆。这样,在根结点得到结点序列键值次最大值。依次类推,直到只有两个结点的堆,并对它们作交换,最后得到有序的n个结点序列。

归并排序

        将两个或两个以上的有序子表合并成一个新的有序表。对于两个有序子表合并一个有序表的两路合并排序来说,初始时,把含n个结点的待排序序列看作有n个长度都为1的有序子表所组成,将它们依次两两合并得到长度为2的若干有序子表,再对它们作两两合并……直到得到长度为n的有序表,排序即告完成。

基数排序

顺序查找

顺序查找就是从表的一端,按顺序比对当前节点与关键字是否相等的一个查找方式。

 

二分查找

要求必须是有序序列,小于中间元素就向左查找,大于中间元素就向右寻找。

分块查找

         分块查找的过程分两步,先用二分法在索引表中查索引项,确定要查的结点在哪一块。然后,再在相应块内顺序查找。

 

 

 

 

 

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值