首页 > 精选要闻 > 精选百科 >

🇨🇳 C语言实现快速排序(三种) 🚀 快速排序c语言

发布时间:2025-03-01 03:52:51来源:网易

🔥 大家好!今天给大家分享一下如何用C语言实现快速排序算法。快速排序是一种非常高效的排序方法,常用于处理大量数据。下面将详细介绍三种不同方式实现快速排序,包括递归实现、非递归实现以及三路划分的实现。

📚 递归实现快速排序:

```c

void quickSort(int arr[], int left, int right) {

if (left < right) {

int pivot = partition(arr, left, right);

quickSort(arr, left, pivot - 1);

quickSort(arr, pivot + 1, right);

}

}

```

🎈 非递归实现快速排序:

```c

void quickSortNR(int arr[], int n) {

int stack[n];

int top = -1;

stack[++top] = 0;

stack[++top] = n - 1;

while (top >= 0) {

int right = stack[top--];

int left = stack[top--];

int pivot = partition(arr, left, right);

if (pivot - 1 > left) {

stack[++top] = left;

stack[++top] = pivot - 1;

}

if (pivot + 1 < right) {

stack[++top] = pivot + 1;

stack[++top] = right;

}

}

}

```

💡 三路划分快速排序:

```c

void quickSortThreeWay(int arr[], int left, int right) {

if (left < right) {

int lt = left, gt = right;

int pivot = arr[left];

int i = left + 1;

while (i <= gt) {

if (arr[i] < pivot) {

swap(&arr[lt++], &arr[i++]);

} else if (arr[i] > pivot) {

swap(&arr[i], &arr[gt--]);

} else {

i++;

}

}

quickSortThreeWay(arr, left, lt - 1);

quickSortThreeWay(arr, gt + 1, right);

}

}

```

📚 以上就是三种不同的快速排序实现方法。希望对大家有所帮助!如果大家有任何疑问或者建议,请在评论区留言讨论!🚀

免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。