Quick Sort - Detailed Version
itsLu
c_cpp
a year ago
1.7 kB
5
Indexable
#include <iostream> using namespace std; /*لازم نخلي الكاونترز جلوبال عشان ده ريكرجن لو عرفتهم جوا الفانكشن مش هيشتغلوا لأن كل ندهة عالفانكشن هترجع الكاونترز اصفار وده مش عايزينه*/ int cCounter = 0, swapCounter = 0; void quick_sort (int arr[], int l, int r) { if (l < r) { int pivot = arr[l], leftcounter = l + 1, rightcounter = r, temp; while (leftcounter <= rightcounter) { while (arr[leftcounter] <= pivot && leftcounter <= r) { leftcounter++; cCounter++; } while (arr[rightcounter] >= pivot && rightcounter > l) { rightcounter--; cCounter++; } if (leftcounter < rightcounter) { temp = arr[rightcounter]; arr[rightcounter] = arr[leftcounter]; arr[leftcounter] = temp; swapCounter++; } } temp = arr[l]; arr[l] = arr[rightcounter]; arr[rightcounter] = temp; swapCounter++; quick_sort(arr, l, rightcounter - 1); quick_sort(arr, rightcounter + 1, r); } } int main() { int arr[5] = {5, 4, 3, 2 , 1}; Quick_Sort(arr, 0, 4); cout << endl << "Number of Comparisons: " << cCounter << "\tNumber of Swaps: " << swapCounter << endl; //اللوب الجاية دي عشان تطبع الأراي بعد الترتيب ممكن تكرفله عادي for (int k = 0 ; k < 5 ; k++) cout << arr[k] << "\t"; }
Editor is loading...
Leave a Comment