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;

}

相关推荐
瀚海澜生14 分钟前
链表系列入门指南(二):吃透这几题,链表解题不再难
后端·算法
爱编码的傅同学19 分钟前
数据结构(五)——AVL树(平衡二叉搜索树)
数据结构·算法
Bonnie_121520 分钟前
02-redis-数据结构实现原理
数据结构·redis·算法
Wood_Like41 分钟前
从递归入手一维动态规划
算法·动态规划
knightkkzboy1 小时前
《C语言中的“魔法盒子”:自定义函数的奇妙之旅》
c语言·开发语言·函数
爱奥尼欧2 小时前
算法竞赛中常用的数据处理库函数
算法
袖清暮雨2 小时前
【专题】贪心算法
算法·贪心算法
_Vinyoo2 小时前
算法——分治
数据结构·算法
顾一大人2 小时前
Python常用排序算法
python·算法·排序算法
小羊在奋斗2 小时前
【今日三题】小乐乐改数字 (模拟) / 十字爆破 (预处理+模拟) / 比那名居的桃子 (滑窗 / 前缀和)
算法