首页 > 科技 >

快速排序 c语言代码实现_c语言简单快速排序 💻🚀

发布时间:2025-03-09 17:51:55来源:
导读 🔥 快速排序是一种非常高效的排序算法,它基于分治法的思想,通过递归的方式将数据分为两部分,使得一部分的数据都比另一部分小。这种算法

🔥 快速排序是一种非常高效的排序算法,它基于分治法的思想,通过递归的方式将数据分为两部分,使得一部分的数据都比另一部分小。这种算法的平均时间复杂度为O(n log n),非常适合处理大规模数据。

📝 下面是用C语言实现快速排序的一个简单例子:

```c

include

// 函数声明

void quickSort(int arr[], int low, int high);

int partition(int arr[], int low, int high);

// 主函数

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");

for (int i=0; i < n; i++)

printf("%d ", arr[i]);

return 0;

}

// 快速排序函数

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); // 对右半部分进行快速排序

}

}

// 分区函数

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++;

// 交换arr[i]和arr[j]

int temp = arr[i];

arr[i] = arr[j];

arr[j] = temp;

}

}

// 交换arr[i+1]和arr[high](即基准值)

int temp = arr[i + 1];

arr[i + 1] = arr[high];

arr[high] = temp;

return (i + 1);

}

```

💻 这个简单的实现展示了如何使用C语言来实现快速排序算法。通过递归调用`quickSort`函数,并使用`partition`函数来划分数组,可以高效地完成排序任务。希望这个示例对你理解快速排序有所帮助!🚀

版权声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。