用c写一段非递归的快速排序
时间: 2023-05-21 21:06:27 浏览: 38
好的,以下是一段非递归的快速排序的C代码:
```
void quick_sort(int arr[], int left, int right) {
int stack[right - left + 1];
int top = -1;
stack[++top] = left;
stack[++top] = right;
while (top >= 0) {
right = stack[top--];
left = stack[top--];
int pivot = arr[(left + right) / 2];
int i = left, j = right;
while (i <= j) {
while (arr[i] < pivot) i++;
while (arr[j] > pivot) j--;
if (i <= j) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
}
if (left < j) {
stack[++top] = left;
stack[++top] = j;
}
if (i < right) {
stack[++top] = i;
stack[++top] = right;
}
}
}
```
希望对你有所帮助!