This preview shows pages 1–3. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: Algorithm Correctness An algorithm is said to be correct if, whenever the precondition is true at the beginning of execution, the postcondition is true at the end of execution. Claim: SimpleSelect is correct. Note that we do not need an algorithm for Sort in order to prove the correctness of SimpleSelect . 1 Precondition: A [1 ..n ] is an array of Number s, 1 ≤ k ≤ n , k and n are Nat s. Postcondition: Returns the value x in A [1 ..n ] such that fewer than k elements of A [1 ..n ] are strictly less than x , and at least k elements of A [1 ..n ] are less than or equal to x . The elements of A [1 ..n ] may be permuted. SimpleSelect ( A [1 ..n ] , k ) Sort ( A [1 ..n ] ) return A [ k ] Precondition: A [1 ..n ] is an array of Number s, n is a Nat . Postcondition: A [1 ..n ] is a permutation of its initial values such that for 1 ≤ i < j ≤ n , A [ i ] ≤ A [ j ] . Sort ( A [1 ..n ] ) 2 Proof • Assume that the precondition for SimpleSelect ( A [1 ..n ]) is satisfied initially. • Then the precondition for Sort ( A [1 ..n ]) is satisfied. • Let A ′ denote the final value A ....
View Full Document
This note was uploaded on 09/06/2009 for the course CIS 11274 taught by Professor Howell during the Spring '09 term at Kansas State University.
- Spring '09