117.info
人生若只如初见

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

快速排序算法是一种常见的排序算法,其基本思想是通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据小,然后分别对这两部分数据进行排序,循环递归直到整个序列有序。

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

#include 

void quickSort(int arr[], int left, int right) {
    int i = left, j = right;
    int pivot = arr[(left + right) / 2];

    while (i <= j) {
        while (arr[i] < pivot) {
            i++;
        }
        while (arr[j] > pivot) {
            j--;
        }
        if (i <= j) {
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
            i++;
            j--;
        }
    }

    if (left < j) {
        quickSort(arr, left, j);
    }
    if (i < right) {
        quickSort(arr, i, right);
    }
}

int main() {
    int arr[] = {12, 34, 23, 45, 56, 67, 78, 89, 90, 11};
    int n = sizeof(arr) / sizeof(arr[0]);

    quickSort(arr, 0, n - 1);

    printf("Sorted array: ");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }

    return 0;
}

在上面的代码中,quickSort函数实现了快速排序算法的逻辑,其中left表示数组的起始索引,right表示数组的结束索引。在主函数中,我们定义了一个数组arr并调用quickSort函数对其进行排序,最后打印排序后的结果。

注意:上面的示例代码只是一种实现方式,实际应用中可能需要根据具体情况进行优化和改进。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fefdcAzsLAQVTA1E.html

推荐文章

  • c语言数组不完全赋值的原因有哪些

    原因一:程序员没有为数组的所有元素赋值。这可能是由于疏忽或者考虑到某些元素不需要赋特定的值而忽略了它们。 原因二:程序逻辑错误。在设计程序时,可能没有考...

  • c语言怎么持续输入输出

    在C语言中,可以使用循环结构来实现持续的输入和输出。
    要持续输入,可以使用while循环或do-while循环结构,并在循环体内使用scanf函数接收输入。
    示例...

  • c语言如何控制输出速度

    在C语言中,可以使用sleep()函数来控制输出的速度。sleep()函数可以让程序暂停执行一定的时间,单位是秒。
    以下是一个示例代码,每输出一个字符后暂停1秒钟...

  • c语言定时器如何定时两秒

    在C语言中,可以使用sleep()函数来实现定时器功能。
    #include #include int main() { printf("Start\n"); sleep(2); // 休眠2秒 printf("End\n"); return 0...

  • C++哈希表怎么排序

    在C++中,哈希表是无序的数据结构,因此无法直接对哈希表进行排序。如果需要对哈希表中的元素进行排序,可以将哈希表的元素复制到一个新的容器(如vector)中,然...

  • jfinal框架怎么实现审批功能

    要实现审批功能,可以在jfinal框架中使用拦截器来实现。首先,需要创建一个审批拦截器类,该类继承于JFinal的Interceptor类,并重写其中的intercept方法,该方法...

  • linux定时任务设置的方法是什么

    在Linux系统中,可以通过crontab命令来设置定时任务。 打开终端,输入以下命令来编辑当前用户的定时任务列表: crontab -e 在编辑器中添加定时任务,每行一个,格...

  • c语言怎么创建一个链表

    在C语言中,可以通过定义结构体来创建链表。以下是一个简单的例子:
    #include #include // 定义链表节点结构体
    struct Node { int data; struct Node*...