首页 > TAG信息列表 > Hoare
Hoare Logic Notes
The Hoare assignment axiom \[\vdash \{P[E/V]\} V:=E \{P\} \]The Floyd assignment axiom \[\vdash \{P\} V:=E \{\exist v.\ (V=E[v/V]) \wedge P[v/V]\} \]Precondition strengthening \[\frac{\vdash P \Rightarrow P',\vdash\{P'\}C快速排序(lomuto 和 Hoare)
lomuto。易于理解 Hoare。比较绕,效率比 lomuto 高。 lomuto 对于 [left, right] 区间,选取 left 作为基准点,将 [left+1...right] 区间分为三部分:1. 小堆(元素 < pivot) 2. 大堆(元素 >= pivot) 3. 乱堆(还未访问的元素) 使用两个指针:1. lBound 指向小堆末尾元素 2. rBound 指向大堆《算法导论 - 思考题》7-1 Hoare划分的正确性
Hoare划分的正确性 题目:本章中给出的PARTITION算法并不是其最初的版本。下面给出的是最初由C.A.R.Hoare设计的划分算法。 HOARE-PARTITION(A,p,r): 1 x <- A[p] 2 i <- p-1 3 j <- r+1 4 while TRUE 5 do repeat j <- j-1 6 until A[j] <= x 7 repeat快速排序(Hoare 分割)
1. 使用 median of three得到分割点 2.当待排序数组的长度小于阈值(10)的时候,切换到插入排序 代码: void insertion_sort(int *a, int start, int end) { int i, j; for(i = start + 1; i <= end; ++i) { int k = a[i]; for( j = i - 1; (j >= start) && (a[j] > k); --j) {