OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * Operations on collections. | 6 * Operations on collections. |
7 */ | 7 */ |
8 library dart.collection_helpers.algorithms; | 8 library dart.pkg.collection.algorithms; |
9 | 9 |
10 import "dart:math" show Random; | 10 import "dart:math" show Random; |
11 | 11 |
12 /** Version of [binarySearch] optimized for comparable keys */ | 12 /** Version of [binarySearch] optimized for comparable keys */ |
13 int _comparableBinarySearch(List<Comparable> list, Comparable key) { | 13 int _comparableBinarySearch(List<Comparable> list, Comparable key) { |
14 int min = 0; | 14 int min = 0; |
15 int max = list.length; | 15 int max = list.length; |
16 while (min < max) { | 16 while (min < max) { |
17 int mid = min + ((max - min) >> 1); | 17 int mid = min + ((max - min) >> 1); |
18 var element = list[mid]; | 18 var element = list[mid]; |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 target.setRange(targetOffset, targetOffset + (firstEnd - cursor1), | 292 target.setRange(targetOffset, targetOffset + (firstEnd - cursor1), |
293 firstList, cursor1); | 293 firstList, cursor1); |
294 return; | 294 return; |
295 } | 295 } |
296 } | 296 } |
297 // First list empties first. Reached by break above. | 297 // First list empties first. Reached by break above. |
298 target[targetOffset++] = secondElement; | 298 target[targetOffset++] = secondElement; |
299 target.setRange(targetOffset, targetOffset + (secondEnd - cursor2), | 299 target.setRange(targetOffset, targetOffset + (secondEnd - cursor2), |
300 secondList, cursor2); | 300 secondList, cursor2); |
301 } | 301 } |
OLD | NEW |