`

快速排序法C实现

阅读更多
#include <stdio.h>

/**
 * @brief 快速排序法
 * @param  arr  待排序的数组
 * @param  left  本次排序的数组最小下标
 * @param right  本次排序的数组最大下标
 * @return 无
 */
void quick_sort(int arr[], int left, int right)
{
    if (left < right) {
        int low = left, high = right, key = arr[left];
        while (low < high) {
            while (low < high && arr[high] >= key)
                high--;
            arr[low] = arr[high];
            while (low < high && arr[low] <= key)
                low++;
            arr[high] = arr[low];
        }
        arr[low] = key;
        quick_sort(arr, left,  low-1);
        quick_sort(arr, low+1, right);
    }
}

int main(int argc, char **argv)
{
    int arr[10] = {2,9,13,52,8,14,6,22,55,41};
    int i;
    for (i=0; i<10; i++)
        printf("%d ", arr[i]);
    printf("\n");
    quick_sort(arr, 0, 9);
    for (i=0; i<10; i++)
        printf("%d ", arr[i]);
    printf("\n");

    return 0;
}
  • q.zip (557 Bytes)
  • 下载次数: 0
分享到:
评论

相关推荐

    java 快速排序 折半查找的界面实现 (递归与分治法)

    首先,快速排序是一种高效的排序算法,由C.A.R. Hoare在1960年提出。它的主要思想是分治法,即将大问题分解为小问题来解决。在快速排序中,我们选择一个基准值(pivot),然后将数组分为两部分:一部分包含所有小于...

    直接排序法,折半插入法,希尔排序法,快速排序法(c语言实现)

    直接排序法、折半插入法、希尔排序法和快速排序法是计算机科学中常见的排序算法,它们在数据处理和算法理解上都具有重要的地位。这些排序算法的C语言实现为初学者提供了很好的学习材料,特别是在VC++6.0环境下进行...

    使用快速排序法对一维数组进行排序

    描述中的程序实现了快速排序法,可能是用一种编程语言如C++、Java或Python编写的,用于对一维数组进行排序。这种程序的实现一般包括上述的三个主要步骤,并可能包含优化措施,例如处理小数组时改用插入排序,或者...

    C经典算法之快速排序法(三)

    ### C经典算法之快速排序法(三) 在探讨快速排序法的过程中,我们已经了解到轴的选择对于算法效率至关重要。本文将介绍一种高效的轴选择方法,该方法来源于著名的算法书籍《Introduction to Algorithms》。通过...

    快速排序 --- 非递归实现

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法,通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后再按...

    快速排序、选择排序、冒泡排序、希尔排序等6种排序算法C实现

    1. **快速排序**:由英国计算机科学家C.A.R. Hoare提出,快速排序是一种高效的排序算法,平均时间复杂度为O(n log n)。其基本思想是通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分...

    快速排序算法c++实现

    C++是面向对象的编程语言,它提供了丰富的库支持和高效的语言特性,非常适合实现各种算法,包括快速排序。在C++中实现快速排序,通常需要以下步骤: 1. **选择基准元素**:可以随机选取数组中的一个元素作为基准,...

    c 语言 快速排序法

    ### c 语言快速排序法知识点解析 #### 快速排序法简介 快速排序是一种非常高效的排序算法,由英国计算机科学家托尼·霍尔(Tony Hoare)于1960年提出。它采用分治策略来把一个序列分为较小的两个子序列,再递归地...

    TIA博途中通过SCL语言实现快速排序的具体方法示例.docx

    在TIA博途中,我们可以使用Structured Text (SCL)语言来实现快速排序。 SCL是IEC 61131-3标准中的一种高级编程语言,适用于西门子的TIA博途软件平台,适用于PLC程序编写。在TIA博途中实现快速排序,我们需要创建两...

    快速排序算法 C语言实现

    在本实现中,我们使用 C 语言来实现快速排序算法。首先,我们需要定义一个记录的数据结构,包括键值和信息两个部分。然后,我们定义一个排序对象,包括记录数组和记录的个数。我们还需要定义四个函数,分别用于创建...

    快速排序 数据结构 实现

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer),通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的...

    排序算法编程 堆排序 快速排序

    快速排序的核心思想是分治法:选取一个基准元素,将数组划分为两部分,一部分的元素都小于基准,另一部分的元素都大于基准,然后对这两部分分别进行快速排序。通过递归调用,最终完成整个序列的排序。 基数排序则是...

    C++语言快速排序算法的实现

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer)。在这个C++实现的快速排序算法中,我们通常会使用递归来处理数组或向量的元素。以下是...

    快速排序法

    C++语言实现快速排序则涉及到更多的编程细节,例如如何定义函数接口、如何处理数组和指针等。在C++中,快速排序的基本结构如下: ```cpp void quickSort(int arr[], int left, int right) { if (left ) { int ...

    快速排序算法的java实现

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer),通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的...

    C经典算法之快速排序法(一)

    ### C经典算法之快速排序法(一) #### 快速排序法概述 快速排序法(Quick Sort)是一种高效的排序算法,被广泛认为是目前最快的排序方法之一,尤其是在处理大规模数据时,其平均时间复杂度为O(nlogn),在实际应用...

    快速排序C++的实现

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer),通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的...

    java Document 快速排序法

    然而,标题中的"java Document 快速排序法"可能指的是在一个包含文档数据的结构(如数组)中实现快速排序,而不是直接在Document对象上操作。由于Document主要处理文本数据,我们通常不会直接在Document上进行数值...

    C经典算法之快速排序法(二)

    ### C经典算法之快速排序法(二) #### 知识点概述 本篇文章将深入探讨快速排序算法的一个改进版本,并通过具体的代码实现来展现这一优化思路。在快速排序法(一)的基础上,本文重点关注轴的选择对算法性能的影响...

Global site tag (gtag.js) - Google Analytics