Knowledge

Prune and search

Source 📝

188:
term than the constant term of binary search. In prune and search algorithms S(n) is typically at least linear (since the whole input must be processed). With this assumption, the recurrence has the solution
168: 305: 298: 33:
The basic idea of the method is a recursive procedure in which at each step the input size is reduced ("pruned") by a constant factor
291: 254:
Nimrod Megiddo (1983) Linear-time algorithms for linear programming in R and related problems. SIAM J. Comput., 12:759–776
213: 42: 552: 483: 453: 438: 96: 557: 508: 382: 372: 352: 23: 387: 232: 526: 488: 332: 392: 362: 503: 478: 423: 8: 513: 498: 443: 87: 531: 433: 428: 342: 228: 493: 337: 473: 458: 271: 270:
Nimrod Megiddo (1984)Linear Programming in Linear Time When the Dimension Is Fixed
255: 217: 448: 283: 199: 61: 314: 27: 546: 463: 418: 174: 413: 377: 347: 216:
or by observing that the times for the recursive subproblems decrease in a
367: 259: 224: 275: 357: 318: 468: 45:, where at each step the decrease is by a constant factor. Let 397: 223:
In particular, Megiddo himself used this approach in his
99: 313: 162: 214:master theorem for divide-and-conquer recurrences 75:be the time complexity of the pruning step. Then 544: 231:problem when the dimension is fixed and for the 299: 64:of the whole prune-and-search algorithm, and 306: 292: 212:. This can be seen either by applying the 545: 235:problem for a set of points in space. 287: 250: 248: 163:{\displaystyle T(n)=S(n)+T(n(1-p)).} 13: 245: 173:This resembles the recurrence for 14: 569: 264: 154: 151: 139: 133: 124: 118: 109: 103: 43:decrease and conquer algorithm 1: 238: 7: 41:. As such, it is a form of 10: 574: 522: 406: 325: 233:minimal enclosing sphere 527:List of data structures 22:is a method of solving 164: 26:problems suggested by 165: 553:Geometric algorithms 424:Breadth-first search 260:10.1109/SFCS.1982.24 97: 86:obeys the following 514:Topological sorting 444:Dynamic programming 276:10.1145/2422.322418 88:recurrence relation 49:be the input size, 16:Optimization method 558:Linear programming 532:List of algorithms 439:Divide and conquer 434:Depth-first search 429:Brute-force search 343:Binary search tree 229:linear programming 227:algorithm for the 160: 540: 539: 338:Associative array 177:but has a larger 565: 509:String-searching 308: 301: 294: 285: 284: 278: 268: 262: 252: 218:geometric series 211: 187: 169: 167: 166: 161: 85: 74: 59: 48: 40: 20:Prune and search 573: 572: 568: 567: 566: 564: 563: 562: 543: 542: 541: 536: 518: 449:Graph traversal 402: 326:Data structures 321: 315:Data structures 312: 282: 281: 269: 265: 253: 246: 241: 190: 178: 98: 95: 94: 76: 65: 62:time complexity 50: 46: 34: 17: 12: 11: 5: 571: 561: 560: 555: 538: 537: 535: 534: 529: 523: 520: 519: 517: 516: 511: 506: 501: 496: 491: 486: 481: 476: 471: 466: 461: 456: 451: 446: 441: 436: 431: 426: 421: 416: 410: 408: 404: 403: 401: 400: 395: 390: 385: 380: 375: 370: 365: 360: 355: 350: 345: 340: 335: 329: 327: 323: 322: 311: 310: 303: 296: 288: 280: 279: 263: 243: 242: 240: 237: 198:) =  171: 170: 159: 156: 153: 150: 147: 144: 141: 138: 135: 132: 129: 126: 123: 120: 117: 114: 111: 108: 105: 102: 28:Nimrod Megiddo 15: 9: 6: 4: 3: 2: 570: 559: 556: 554: 551: 550: 548: 533: 530: 528: 525: 524: 521: 515: 512: 510: 507: 505: 502: 500: 497: 495: 492: 490: 487: 485: 482: 480: 477: 475: 472: 470: 467: 465: 464:Hash function 462: 460: 457: 455: 452: 450: 447: 445: 442: 440: 437: 435: 432: 430: 427: 425: 422: 420: 419:Binary search 417: 415: 412: 411: 409: 405: 399: 396: 394: 391: 389: 386: 384: 381: 379: 376: 374: 371: 369: 366: 364: 361: 359: 356: 354: 351: 349: 346: 344: 341: 339: 336: 334: 331: 330: 328: 324: 320: 316: 309: 304: 302: 297: 295: 290: 289: 286: 277: 273: 267: 261: 257: 251: 249: 244: 236: 234: 230: 226: 221: 219: 215: 209: 205: 201: 197: 193: 185: 181: 176: 175:binary search 157: 148: 145: 142: 136: 130: 127: 121: 115: 112: 106: 100: 93: 92: 91: 89: 83: 79: 72: 68: 63: 57: 53: 44: 38: 31: 29: 25: 21: 489:Root-finding 414:Backtracking 378:Segment tree 348:Fenwick tree 266: 222: 207: 203: 195: 191: 183: 179: 172: 81: 77: 70: 66: 55: 51: 36: 32: 24:optimization 19: 18: 368:Linked list 225:linear time 547:Categories 504:Sweep line 479:Randomized 407:Algorithms 358:Hash table 319:algorithms 239:References 499:Streaming 484:Recursion 146:− 30:in 1983. 494:Sorting 469:Minimax 60:be the 35:0 < 474:Online 459:Greedy 388:String 39:< 1 383:Stack 373:Queue 353:Graph 333:Array 454:Fold 398:Trie 393:Tree 363:Heap 317:and 272:doi 256:doi 549:: 247:^ 220:. 210:)) 90:: 307:e 300:t 293:v 274:: 258:: 208:n 206:( 204:S 202:( 200:O 196:n 194:( 192:T 186:) 184:n 182:( 180:S 158:. 155:) 152:) 149:p 143:1 140:( 137:n 134:( 131:T 128:+ 125:) 122:n 119:( 116:S 113:= 110:) 107:n 104:( 101:T 84:) 82:n 80:( 78:T 73:) 71:n 69:( 67:S 58:) 56:n 54:( 52:T 47:n 37:p

Index

optimization
Nimrod Megiddo
decrease and conquer algorithm
time complexity
recurrence relation
binary search
O
master theorem for divide-and-conquer recurrences
geometric series
linear time
linear programming
minimal enclosing sphere


doi
10.1109/SFCS.1982.24
doi
10.1145/2422.322418
v
t
e
Data structures
algorithms
Array
Associative array
Binary search tree
Fenwick tree
Graph
Hash table
Heap

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.