快速排序的非递归c语言
时间: 2023-02-22 07:40:38 浏览: 115
c#快速排序的非递归算法
4星 · 用户满意度95%
快速排序是一种常用的排序算法,通常使用递归实现。但是,也可以使用非递归的方式实现快速排序。下面是一份使用 C 语言实现的非递归快速排序的代码示例:
```
#include<stdio.h>
#include<stdlib.h>
void quick_sort(int arr[], int l, int r)
{
int i, j, x, y;
if (l < r)
{
i = l;
j = r;
x = arr[i];
while (i < j)
{
while(i < j && arr[j] > x)
j--;
if(i < j)
arr[i++] = arr[j];
while(i < j && arr[i] < x)
i++;
if(i < j)
arr[j--] = arr[i];
}
arr[i] = x;
quick_sort(arr, l, i - 1);
quick_sort(arr, i + 1, r);
}
}
int main()
{
int arr[] = {72, 6, 57, 88, 60, 42, 83, 73, 48, 85};
int n = sizeof(arr) / sizeof(arr[0]);
int i;
quick_sort(arr, 0, n-1);
printf("快速排序的结果是:\n");
for (i=0; i < n; i++)
printf("%d ", arr[i]);
return 0;
}
```
请注意,这仅仅是一个非递归快速排序的实现示例,在不同的场景中,也可以使用其他方式实现。
阅读全文