public void testQuickSort() {
List<Integer> numberList = Arrays.asList(1, 3, -5, -9, 10, 7, 4, 0, 9, 22);
List<Integer> quickResult = quickSort(numberList);
for (int i = 0; i < quickResult.size(); i++) {
Log.i("kjw", "result = " + quickResult.get(i));
}
}
public static List<Integer> quickSort(List<Integer> numbers) {
if (numbers.size() < 2) {
return numbers;
}
int pivot = numbers.get(0);
List<Integer> lower = new ArrayList();
List<Integer> higher = new ArrayList();
for (int i = 1; i < numbers.size(); i++) {
if (numbers.get(i) < pivot) {
lower.add(numbers.get(i));
} else {
higher.add(numbers.get(i));
}
}
List<Integer> sorted = quickSort(lower);
sorted.add(pivot);
sorted.addAll(quickSort(higher));
return sorted;
}
List<Integer> numberList = Arrays.asList(1, 3, -5, -9, 10, 7, 4, 0, 9, 22);
List<Integer> quickResult = quickSort(numberList);
for (int i = 0; i < quickResult.size(); i++) {
Log.i("kjw", "result = " + quickResult.get(i));
}
}
public static List<Integer> quickSort(List<Integer> numbers) {
if (numbers.size() < 2) {
return numbers;
}
int pivot = numbers.get(0);
List<Integer> lower = new ArrayList();
List<Integer> higher = new ArrayList();
for (int i = 1; i < numbers.size(); i++) {
if (numbers.get(i) < pivot) {
lower.add(numbers.get(i));
} else {
higher.add(numbers.get(i));
}
}
List<Integer> sorted = quickSort(lower);
sorted.add(pivot);
sorted.addAll(quickSort(higher));
return sorted;
}
'프로그래밍 > 알고리즘' 카테고리의 다른 글
DFS(미로찾기) (0) | 2017.02.24 |
---|---|
이진트리(BinaryTree) (0) | 2017.02.24 |
Queue (0) | 2017.02.24 |
binarySearch (0) | 2017.02.24 |
Stack(TwoStack) (0) | 2017.02.24 |