首页主机资讯怎么用c语言实现快速排序算法

怎么用c语言实现快速排序算法

时间2024-01-22 15:42:03发布访客分类主机资讯浏览803
导读:以下是使用C语言实现快速排序算法的示例代码: #include <stdio.h> void swap(int* a, int* b { int t = *a; *a = *b; *b = t; }...

以下是使用C语言实现快速排序算法的示例代码:

#include stdio.h>


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];
     // 将最后一个元素作为基准
    int i = (low - 1);
     // 最小元素的索引

    for (int j = low;
     j = high - 1;
 j++) {

        // 如果当前元素小于或等于基准
        if (arr[j] = pivot) {
    
            i++;
     // 移动最小元素的索引
            swap(&
    arr[i], &
    arr[j]);

        }

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

        quickSort(arr, low, pi - 1);
    
        quickSort(arr, pi + 1, high);

    }

}


void printArray(int arr[], int size) {
    
    for (int i = 0;
     i  size;
 i++) {
    
        printf("%d ", arr[i]);

    }
    
    printf("\n");

}


int main() {

    int arr[] = {
 64, 34, 25, 12, 22, 11, 90 }
    ;
    
    int n = sizeof(arr) / sizeof(arr[0]);
    

    printf("排序前的数组:\n");
    
    printArray(arr, n);
    

    quickSort(arr, 0, n - 1);
    

    printf("排序后的数组:\n");
    
    printArray(arr, n);
    

    return 0;

}
    

该代码中的 quickSort 函数用于实现快速排序算法。 partition 函数用于选择基准元素并将小于基准元素的元素放置在基准元素的左侧,大于基准元素的元素放置在基准元素的右侧。 swap 函数用于交换两个元素的值。 printArray 函数用于打印数组的元素。在 main 函数中,我们定义了一个示例数组并调用 quickSort 函数进行排序,然后使用 printArray 函数打印排序后的数组。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 怎么用c语言实现快速排序算法
本文地址: https://pptw.com/jishu/583068.html
pycharm如何创建django项目 php两个数组怎么合并成一个

游客 回复需填写必要信息