-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patha.cpp
52 lines (42 loc) · 1.32 KB
/
a.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
using namespace std;
// Dizi içinde iki elemanı yer değiştirmek için swap fonksiyonu
void swap(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
// Dizinin bir parçasını pivot etrafında bölen partition fonksiyonu
int partition(int A[], int low, int high) {
int pivot = A[high]; // Pivot olarak son eleman seçiliyor
int i = low - 1; // i, pivot'un doğru yerine yerleştirileceği indeksi takip eder
for (int j = low; j < high; j++) {
if (A[j] < pivot) {
i++; // i'yi arttır ve küçük elemanları sol tarafa taşı
swap(A[i], A[j]);
}
}
swap(A[i + 1], A[high]); // Pivot'u doğru yerine yerleştir
return i + 1; // Pivot'un yerini döndür
}
// Rekürsif quick sort fonksiyonu
void quickSort(int A[], int low, int high) {
if (low < high) {
int pi = partition(A, low, high); // Pivot'u partition et
// Sol tarafı sırala
quickSort(A, low, pi - 1);
// Sağ tarafı sırala
quickSort(A, pi + 1, high);
}
}
int main() {
int A[] = {10, 7, 8, 9, 1, 5};
int n = sizeof(A) / sizeof(A[0]);
quickSort(A, 0, n - 1); // Quick sort'u çağır
cout << "Sorted array: ";
for (int i = 0; i < n; i++) {
cout << A[i] << " ";
}
cout << endl;
return 0;
}