Overview
Comment: | quicksort: Reduce used space. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
a747ad5478321fc704efc1397eff979e |
User & Date: | js on 2012-12-07 14:50:34 |
Other Links: | manifest | tags |
Context
2012-12-09
| ||
12:13 | Split OFHTTPRequest into OFHTTP{Client,Request}. check-in: 2b7a70e246 user: js tags: trunk | |
2012-12-07
| ||
14:50 | quicksort: Reduce used space. check-in: a747ad5478 user: js tags: trunk | |
13:57 | Revert several OFHashMap related commits. check-in: 6712442fad user: js tags: trunk | |
Changes
Modified src/OFMutableArray.m from [ef9ecd25ad] to [7a6a7331fd].
︙ | ︙ | |||
37 38 39 40 41 42 43 | @interface OFMutableArray_placeholder: OFMutableArray @end static void quicksort(OFMutableArray *array, size_t left, size_t right) { | > | | < < < | | | | | | | | | | | | | | | > | | | > > | > | > > > > > | 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | @interface OFMutableArray_placeholder: OFMutableArray @end static void quicksort(OFMutableArray *array, size_t left, size_t right) { while (left < right) { size_t i, j; id pivot; i = left; j = right - 1; pivot = [array objectAtIndex: right]; do { while ([[array objectAtIndex: i] compare: pivot] != OF_ORDERED_DESCENDING && i < right) i++; while ([[array objectAtIndex: j] compare: pivot] != OF_ORDERED_ASCENDING && j > left) j--; if (i < j) [array exchangeObjectAtIndex: i withObjectAtIndex: j]; } while (i < j); if ([[array objectAtIndex: i] compare: pivot] == OF_ORDERED_DESCENDING) [array exchangeObjectAtIndex: i withObjectAtIndex: right]; if (i > 0) { if (i > left && i - 1 - left > right - i - 1) { right = i - 1; quicksort(array, i + 1, right); } else { quicksort(array, left, i - 1); left = i + 1; } } else left = i + 1; } } @implementation OFMutableArray_placeholder - init { return (id)[[OFMutableArray_adjacent alloc] init]; } |
︙ | ︙ |