2.3-6 INSERTION-SORT-2(A) for j = 2 to A.length key = A[j] i = j-1 r = BINARY-SEARCH-R'(A, A[j], 1, i) while i>r A[i+1] = A[i] i = i-1 A[i+1] = key /* returns p in [1..A.length] / A[p] = v1 and v1 <= v if v1 exists * returns 0 if v1 doesn't exist */ BINARY-SEARCH-R'(A, v, p, q) if p>q return 0 if A[ (p+q)/2 ] <= v return max( (p+q)/2, BINARY-SEARCH-R'(A, v, (p+q)/2+1, q) ) else // A[ (p+q)/2 ] > v return BINARY-SEARCH-R'( A, v, p, (p+q)/2-1 ) /* Iterative version */ BINARY-SEARCH-R'(A, v, p, q) max_v : Integer BEGIN while p<=q if A[ (p+q)/2 ] <= v max_v = (p+q)/2 p = (p+q)/2+1 else // A[(p+q)/...
Ideas y proyectos de informática.