From 452cca705e9c194d2045d9ab12fb6cbbd0850c54 Mon Sep 17 00:00:00 2001 From: georgepulikkathadathil <44443921+georgepulikkathadathil@users.noreply.github.com> Date: Sat, 19 Oct 2019 13:17:40 +0530 Subject: [PATCH] Create quick_sort.dart --- Sorting/quick_sort.dart | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Sorting/quick_sort.dart diff --git a/Sorting/quick_sort.dart b/Sorting/quick_sort.dart new file mode 100644 index 0000000..2ca14af --- /dev/null +++ b/Sorting/quick_sort.dart @@ -0,0 +1,27 @@ +int partition(List list, int low, int high) { + if (list == null || list.length == 0) return 0; + int pivot = list[high]; + int i = low - 1; + + for (int j = low; j < high; j++) { + if (list[j] <= pivot) { + i++; + swap(list, i, j); + } + swap(list, i+1, high); + return i+1; +} + +void swap(List list, int i, int j) { + int temp = list[i]; + list[i] = list[j]; + list[j] = temp; +} + +void quickSort(List list, int low, int high) { + if (low < high) { + int pi = partition(list, low, high); + quickSort(list, low, pi-1); + quickSort(list, pi+1, high); + } +}