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;

}

相关推荐
℉AVE4 分钟前
点集配准---迭代最近点算法ICP(Iterative Closest Point)
算法
松涛和鸣4 分钟前
23、链式栈(LinkStack)的实现与多场景应用
linux·c语言·c++·嵌入式硬件·ubuntu
大数据魔法师9 分钟前
聚类算法(一)- K-Means聚类
算法·kmeans·聚类
CoderYanger20 分钟前
A.每日一题——2141.同时运行N台电脑的最长时间
java·算法·leetcode·职场和发展·1024程序员节
Ayanami_Reii22 分钟前
进阶数据结构-线段树
数据结构·算法·线段树
liu****22 分钟前
11.字符函数和字符串函数(一)
linux·运维·c语言·开发语言·数据结构·算法
aini_lovee25 分钟前
基于UERD算法的JPEG图像隐写MATLAB实现
开发语言·算法·matlab
Geek__199230 分钟前
STM32F103 ADC DMA采样与均值滤波处理实战指南
c语言·stm32
Tandy12356_31 分钟前
手写TCP/IP协议栈——数据包结构定义
c语言·网络·c++·计算机网络
橘颂TA42 分钟前
【剑斩OFFER】算法的暴力美学——Z字行变换
算法·leetcode·职场和发展·结构与算法