#include <stdio.h>
// 配列の要素を交換する関数
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// クイックソートのパーティション処理
int partition(int arr[], int low, int high) {
int pivot = arr[high]; // ピボットを最後の要素に設定
int i = low - 1; // 小さい要素の位置
for (int j = low; j < high; j++) {
if (arr[j] <= pivot) {
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) {
int pi = partition(arr, low, high);
// ピボットの左右で再帰ソート
quicksort(arr, low, pi - 1);
quicksort(arr, pi + 1, high);
}
}
// 配列の内容を表示する関数
void print_array(int arr[], int size) {
for (int i = 0; i < size; i++) {
}
}
// メイン関数
int main() {
int data[10];
for (int i = 0; i < 10; i++) {
}
quicksort(data, 0, 9);
print_array(data, 10);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovLyDphY3liJfjga7opoHntKDjgpLkuqTmj5vjgZnjgovplqLmlbAKdm9pZCBzd2FwKGludCAqYSwgaW50ICpiKSB7CiAgICBpbnQgdGVtcCA9ICphOwogICAgKmEgPSAqYjsKICAgICpiID0gdGVtcDsKfQoKLy8g44Kv44Kk44OD44Kv44K944O844OI44Gu44OR44O844OG44Kj44K344On44Oz5Yem55CGCmludCBwYXJ0aXRpb24oaW50IGFycltdLCBpbnQgbG93LCBpbnQgaGlnaCkgewogICAgaW50IHBpdm90ID0gYXJyW2hpZ2hdOyAvLyDjg5Tjg5zjg4Pjg4jjgpLmnIDlvozjga7opoHntKDjgavoqK3lrpoKICAgIGludCBpID0gbG93IC0gMTsgICAgICAgIC8vIOWwj+OBleOBhOimgee0oOOBruS9jee9rgoKICAgIGZvciAoaW50IGogPSBsb3c7IGogPCBoaWdoOyBqKyspIHsKICAgICAgICBpZiAoYXJyW2pdIDw9IHBpdm90KSB7CiAgICAgICAgICAgIGkrKzsKICAgICAgICAgICAgc3dhcCgmYXJyW2ldLCAmYXJyW2pdKTsKICAgICAgICB9CiAgICB9CiAgICAvLyDjg5Tjg5zjg4Pjg4jjgpLmraPjgZfjgYTkvY3nva7jgavnp7vli5UKICAgIHN3YXAoJmFycltpICsgMV0sICZhcnJbaGlnaF0pOwogICAgcmV0dXJuIGkgKyAxOwp9CgovLyDjgq/jgqTjg4Pjgq/jgr3jg7zjg4jjga7lho3luLDplqLmlbAKdm9pZCBxdWlja3NvcnQoaW50IGFycltdLCBpbnQgbG93LCBpbnQgaGlnaCkgewogICAgaWYgKGxvdyA8IGhpZ2gpIHsKICAgICAgICBpbnQgcGkgPSBwYXJ0aXRpb24oYXJyLCBsb3csIGhpZ2gpOwoKICAgICAgICAvLyDjg5Tjg5zjg4Pjg4jjga7lt6blj7Pjgaflho3luLDjgr3jg7zjg4gKICAgICAgICBxdWlja3NvcnQoYXJyLCBsb3csIHBpIC0gMSk7CiAgICAgICAgcXVpY2tzb3J0KGFyciwgcGkgKyAxLCBoaWdoKTsKICAgIH0KfQoKLy8g6YWN5YiX44Gu5YaF5a6544KS6KGo56S644GZ44KL6Zai5pWwCnZvaWQgcHJpbnRfYXJyYXkoaW50IGFycltdLCBpbnQgc2l6ZSkgewogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKICAgICAgICBwcmludGYoIiVkICIsIGFycltpXSk7CiAgICB9CiAgICBwcmludGYoIlxuIik7Cn0KCi8vIOODoeOCpOODs+mWouaVsAppbnQgbWFpbigpIHsKICAgIGludCBkYXRhWzEwXTsKICAgIHByaW50ZigiMTDlgIvjga7mlbTmlbDjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYQ6XG4iKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTA7IGkrKykgewogICAgICAgIHNjYW5mKCIlZCIsICZkYXRhW2ldKTsKICAgIH0KCiAgICBxdWlja3NvcnQoZGF0YSwgMCwgOSk7CgogICAgcHJpbnRmKCLjgr3jg7zjg4jlvozjga7phY3liJc6XG4iKTsKICAgIHByaW50X2FycmF5KGRhdGEsIDEwKTsKCiAgICByZXR1cm4gMDsKfQo=