排序
排序法把本节例 3中的数据从大到小排序。 分别用直接插。
( 7) ( 8) =极小 袋中装有大小相同的 3个绿球、 3个黑球和 6个蓝球,闭上眼从袋中摸出一个球,想一想以下 6个事件发生的机会谁大谁小。 将它们从小到大在直线上排序. 问题 2 ( 1)摸出的球颜色为绿色; ( 2)摸出的球颜色为白色; ( 3)摸出的球颜色为蓝色; ( 4)摸出的球颜色为黑色; ( 5)摸出的球颜色为黑色或绿色; ( 6)摸出的球颜色为蓝色、黑色或绿色
S猜 想 :反 序 和 乱 序 和 顺 序 和即 :定理 :(排序不等式) 形成结论 1 2 1 1 1 1 21 2 1 21 2 1 21 2 1 221 1 2 2, , , ,.nnnnnnn n n n nnna b a b a b a c a c a ca b aa a a b b bc c c b b ba a a b b
} 示例 下一页 上一页 停止放映 第 29 页 改进的冒泡排序算法 38 从上述举例中可以看出 , 从第 4趟冒泡起 , 序列已有序 , 结果是空跑了 3趟。 若两次冒泡处理过程中 , 没有进行交换 , 说明序列已有序 , 则停止交换。 这就是改进的冒泡算法的处理思想。 用改进的冒泡算法处理 , 比较次数有所减少。 对于数列 { 65,97,76,13,27,49,58 } 比较次数
+ 3 6 7 4+ 1 6 5- 2 4+ 1 3+ 3 2+ 3 4+ 3 < < > < < < > > > > > >。
方法 :通过比较确定元素位置 13/23 二 . 建立哈希表 构造哈希函数常用的方法 – 数字分析法 – 平方取中法 – 折叠法 – 除留余数法 ( 求模取余法 ) – 直接定址法 14/23 三 .冲突及冲突处理 1. 冲突 :在哈希元素 ( 地址 ) 求解过程中 ,不同关键字值对应到同一个存储地址的现象 , 即 K1K2, 但 H( K1) = H( K2) 2.
5 6 调整败者树的方法 : 将新补充的结点与其双亲结点比较 , 败者留在该双亲结点 ,胜者继续向上直至树根的双亲 以在 b[4]补充 15为例 15 4与 3比较 4与 2比较 4 2与 5比较 2 5 调整败者树的方法 7 7 7 7 7 7 7 90 0 10 9 20 6 8 12 1 2 3 4 5 6 [k路归并对内存的要求 ] 至少要有 k个输入缓冲区和一个输出缓冲区
r = H( key) 建立哈希函数的原则 – 均匀性 H( key) 的值均匀分布在哈希表中; – 简单 以提高地址计算的速度。 下一页 上一页 停止放映 [第 35页 /81] 冲突及冲突处理 在哈希元素求解过程中 , 不同关键字值对应到同一个存储地址的现象称为冲突。 即关键字 K1 K2, 但哈希函数值 H( K1)= H( K2)。 均匀的哈希函数可以减少冲突 , 但不能避免冲突。
此 SAT问题是否有解,即可验证 S是否可以 425130 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 0 1 0 1 118 HornSAT • 每个子句里最多有一个 positive literal • 存在多项式的构造算法: –如果每个子句都包含大于 1个变量,则所有变量取负即为解 –否则,存在包含 1个变量的子句,则这些变量的值可唯一确定
个一维数组 r中,具体的做法是:设两个指示器 i和 j,初始时 i指向数组中的第一个数据, j指向最末一个数据。 i先不动使 j逐步前移,每次对二者所指的数据进行比较,当遇到 r[i]大于 r[j]的情况时,就将二者对调位置;然后令 j固定使 i逐步后移做数据比较,当遇到 r[i]大于 r[j] 时,又进行位置对调;然后又是 i不动使 j前移作数据比较; …… ; 如此反复进行,直至 i与