C语言实现快速排序算法

#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];

int i = (low - 1);

for (int j = low; j <= high - 1; 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 printArray(int arr[], int size) {

for (int i = 0; i < size; i++)

printf("%d ", arr[i]);

printf("\n");

}

int main() {

int arr[] = {10, 7, 8, 9, 1, 5};

int n = sizeof(arr)/sizeof(arr[0]);

quickSort(arr, 0, n-1);

printf("Sorted array: \n");

printArray(arr, n);

return 0;

}

相关推荐
陌路2035 分钟前
S12 简单排序算法--冒泡 选择 直接插入 希尔排序
数据结构·算法·排序算法
许长安1 小时前
C/C++中的extern关键字详解
c语言·开发语言·c++·经验分享·笔记
雾岛—听风1 小时前
P1012 [NOIP 1998 提高组] 拼数
算法
奔跑吧邓邓子2 小时前
【C语言实战(71)】C语言进阶:树与图的奇妙数据之旅
c语言···开发实战
papership2 小时前
【入门级-算法-5、数值处理算法:高精度的乘法】
数据结构·算法
earthzhang20212 小时前
【1039】判断数正负
开发语言·数据结构·c++·算法·青少年编程
谈笑也风生2 小时前
只出现一次的数字 II(一)
数据结构·算法·leetcode
蕓晨2 小时前
auto 自动类型推导以及注意事项
开发语言·c++·算法
一袋米扛几楼982 小时前
【软件安全】C语言特性 (C Language Characteristics)
java·c语言·安全
mjhcsp2 小时前
C++ 递推与递归:两种算法思想的深度解析与实战
开发语言·c++·算法