0%

概念

: 堆是具有下列性质的完全二叉树:每个节点的值都大于或等于其左右孩子(如果存在的话)的值,称为最大堆;或者每个节点的值都小于或等于其左右孩子(如果存在的话)的值,称为最小堆。

阅读全文 »

概念

希尔排序是插入类排序算法,它的本质就是分组插入排序,它采取分割策略:将相距某个“增量”的记录组成一个子序列,保证在每个子序列内部分别进行插入排序后得到的结果是基本有序。

阅读全文 »

概念

简单选择排序是选择类的排序,算法原理:第i次排序(1≤ i ≤n-1),从待排序的n-i+1个记录中, 进行n-i次关键字比较,从n-i+1个记录中选出最小的,并和第i-1个记录进行交换。

阅读全文 »

问题分析

对于ipv4的地址来说,如果用字符串的形式存储的话,其占用字节就比较大,比如对于IPv4地址0.0.0.0的字符串,就需要7个字节,IPv4为255.255.255.255 的字符串,需要15个字节,也就是说存储一个ip需要占用7~15个字节。

阅读全文 »

概念

冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直至没有反序的记录为止。
因为按照该算法,每次比较会将当前未排序的记录序列中最小的关键字移至未排序的记录序列最前(或者将当前未排序的记录序列中最大的关键字移至未排序的记录序列最后),就像冒泡一样,故以此为名。

阅读全文 »

前言

如果查找的数据集是有序的线性表,并且是顺序存储的,查找可以用折半查找、插值查找、斐波那契查找算法(详细算法见:有序表查找(折半、插值、斐波那契查找))等实现。但是正是因为他们是顺序的,所以在插入和删除操作中需要耗费大量时间,也就是说这些算法适合静态查找(只有查找操作),不适合动态查找(不仅有查找操作还有插入删除等操作)。而二叉搜索树正适合动态查找。

阅读全文 »

定义

顺序查找又称为线性查找,其算法思路是从数组中的第一个(或最后一个)记录开始,将数组中元素逐个与需要查找的关键字进行比对,若发现有相等的,则查找成功;若始终未能相等,则查找失败。

阅读全文 »

中缀表达式: 是一个通用的算术或逻辑公式表示方法, 操作符是以中缀形式处于的中间(例:3 + 4),中缀表达式是人们常用的算术表示方法,但是不易被计算机所解析。

后缀表达式:是一个通用的算术或逻辑公式表示方法, 操作符是后缀形式处于操作数的后面(例:3 4 +),后缀表达式虽然不是人们所习惯的运算表示方法,但是易被计算机解析。

阅读全文 »