#include <stdio.h>
void swap(int* a, int* b) {
int t = *a;
*a = *b;
*b = t;
}
int partition(int arr[], int low, int high) {
int pivot = arr[high]; // เลือก pivot จากตำแหน่งสุดท้าย
int i = (low - 1); // ตัวแปรสำหรับตำแหน่งที่จะแทรก pivot
for (int j = low; j <= high - 1; j++) {
// ถ้าเจอสมาชิกที่มีค่าน้อยกว่า pivot
if (arr[j] < pivot) {
i++; // เลื่อน i ไปทางขวา
swap(&arr[i], &arr[j]);
}
}
swap(&arr[i + 1], &arr[high]);
return (i + 1);
}
void quickSort(int arr[], int low, int high) {
if (low < high) {
// แบ่งอาเรย์และรับตำแหน่ง pivot
int pi = partition(arr, low, high);
// แยกอาเรย์เป็นสองส่วนและเรียกฟังก์ชัน quickSort สำหรับแต่ละส่วน
quickSort(arr, low, pi - 1);
quickSort(arr, pi + 1, high);
}
}
void printArray(int arr[], int size) {
for (int i = 0; i < size; i++) {
}
}
int main() {
int arr[] = {10, 7, 8, 9, 1, 5};
int n = sizeof(arr) / sizeof(arr[0]);
printArray(arr, n);
quickSort(arr, 0, n - 1);
printArray(arr, n);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CnZvaWQgc3dhcChpbnQqIGEsIGludCogYikgewogICAgaW50IHQgPSAqYTsKICAgICphID0gKmI7CiAgICAqYiA9IHQ7Cn0KCmludCBwYXJ0aXRpb24oaW50IGFycltdLCBpbnQgbG93LCBpbnQgaGlnaCkgewogICAgaW50IHBpdm90ID0gYXJyW2hpZ2hdOyAgLy8g4LmA4Lil4Li34Lit4LiBIHBpdm90IOC4iOC4suC4geC4leC4s+C5geC4q+C4meC5iOC4h+C4quC4uOC4lOC4l+C5ieC4suC4ogogICAgaW50IGkgPSAobG93IC0gMSk7ICAvLyDguJXguLHguKfguYHguJvguKPguKrguLPguKvguKPguLHguJrguJXguLPguYHguKvguJnguYjguIfguJfguLXguYjguIjguLDguYHguJfguKPguIEgcGl2b3QKCiAgICBmb3IgKGludCBqID0gbG93OyBqIDw9IGhpZ2ggLSAxOyBqKyspIHsKICAgICAgICAvLyDguJbguYnguLLguYDguIjguK3guKrguKHguLLguIrguLTguIHguJfguLXguYjguKHguLXguITguYjguLLguJnguYnguK3guKLguIHguKfguYjguLIgcGl2b3QKICAgICAgICBpZiAoYXJyW2pdIDwgcGl2b3QpIHsKICAgICAgICAgICAgaSsrOyAgLy8g4LmA4Lil4Li34LmI4Lit4LiZIGkg4LmE4Lib4LiX4Liy4LiH4LiC4Lin4LiyCiAgICAgICAgICAgIHN3YXAoJmFycltpXSwgJmFycltqXSk7CiAgICAgICAgfQogICAgfQogICAgc3dhcCgmYXJyW2kgKyAxXSwgJmFycltoaWdoXSk7CiAgICByZXR1cm4gKGkgKyAxKTsKfQoKdm9pZCBxdWlja1NvcnQoaW50IGFycltdLCBpbnQgbG93LCBpbnQgaGlnaCkgewogICAgaWYgKGxvdyA8IGhpZ2gpIHsKICAgICAgICAvLyDguYHguJrguYjguIfguK3guLLguYDguKPguKLguYzguYHguKXguLDguKPguLHguJrguJXguLPguYHguKvguJnguYjguIcgcGl2b3QKICAgICAgICBpbnQgcGkgPSBwYXJ0aXRpb24oYXJyLCBsb3csIGhpZ2gpOwoKICAgICAgICAvLyDguYHguKLguIHguK3guLLguYDguKPguKLguYzguYDguJvguYfguJnguKrguK3guIfguKrguYjguKfguJnguYHguKXguLDguYDguKPguLXguKLguIHguJ/guLHguIfguIHguYzguIrguLHguJkgcXVpY2tTb3J0IOC4quC4s+C4q+C4o+C4seC4muC5geC4leC5iOC4peC4sOC4quC5iOC4p+C4mQogICAgICAgIHF1aWNrU29ydChhcnIsIGxvdywgcGkgLSAxKTsKICAgICAgICBxdWlja1NvcnQoYXJyLCBwaSArIDEsIGhpZ2gpOwogICAgfQp9Cgp2b2lkIHByaW50QXJyYXkoaW50IGFycltdLCBpbnQgc2l6ZSkgewogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKICAgICAgICBwcmludGYoIiVkICIsIGFycltpXSk7CiAgICB9CiAgICBwcmludGYoIlxuIik7Cn0KCmludCBtYWluKCkgewogICAgaW50IGFycltdID0gezEwLCA3LCA4LCA5LCAxLCA1fTsKICAgIGludCBuID0gc2l6ZW9mKGFycikgLyBzaXplb2YoYXJyWzBdKTsKICAgIHByaW50ZigiQmVmb3JlIHNvcnRpbmc6ICIpOwogICAgcHJpbnRBcnJheShhcnIsIG4pOwoKICAgIHF1aWNrU29ydChhcnIsIDAsIG4gLSAxKTsKCiAgICBwcmludGYoIkFmdGVyIHNvcnRpbmc6ICIpOwogICAgcHJpbnRBcnJheShhcnIsIG4pOwogICAgcmV0dXJuIDA7Cn0=