c语言快速排序的方法
快速排序是一种非常高效的排序算法,其基本思想是分治法。以下是使用C语言实现快速排序的示例代码:
```c
include <>
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];  // pivot element
    int i = (low - 1);  // Index of smaller element
    for (int j = low; j <= high- 1; j++) {
        if (arr[j] < pivot) {
            i++;  // increment index of smaller element
            swap(&arr[i], &arr[j]);
        }
字符串长度排序c语言
    }
    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);  // pi is partitioning index
        quickSort(arr, low, pi - 1);  // Sort elements before pi
        quickSort(arr, pi + 1, high);  // Sort elements after pi
    }
}
void printArray(int arr[], int size) {
    int i;
    for (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;
}
```
在这个示例中,我们首先定义了一个swap函数,用于交换两个元素的值。然后,我们定义了一个partition函数,该函数选择一个枢轴元素,并将数组划分为两个子数组,其中一个子数组中的所有元素都小于枢轴元素,另一个子数组中的所有元素都大于枢轴元素。最后,我们定义了一个quickSort函数,该函数递归地对两个子数组进行排序。在主函数中,我们定义了一个数组,并使用quickSort函数对其进行排序。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。