美文网首页
c语言实现快排

c语言实现快排

作者: lxr_ | 来源:发表于2022-09-15 21:19 被阅读0次
void Swap(int* scores, int i, int j)
{
    int temp = scores[i];
    scores[i] = scores[j];
    scores[j] = temp;
}
int pivot(int* scores, int l, int r)
{
    int pivotKey = scores[l];

    while (l < r)
    {
        while (l<r && scores[r]>pivotKey)
        {
            r--;
        }
        Swap(scores, l, r);     //交换完后r处为pivotKey

        while (l < r && scores[l] < pivotKey)
        {
            l++;                //交换完后l处为pivotKey
        }
        Swap(scores, l, r);
    }

    return l;
}

void Sort(int* scores, int l, int r)
{
    if (l < r)
    {
        int p = pivot(scores, l, r);

        Sort(scores, l, p - 1);
        Sort(scores, p + 1, r);
    }
}

int* fastSort(int* scores, int scoreLen)
{
    Sort(scores, 0, scoreLen - 1);
}

int main(int argc, char** argv)
{
    int a[6] = { 1,34,4,5,35,24 };

    fastSort(a, 6);
    for (int i = 0; i < 6; i++)
    {
        printf("%d ", a[i]);
    }
    printf("\n");

    return 0;
}

相关文章

  • c语言实现快排

  • 快排c++实现

    ``` hello ``` int div_sub_arr(int arr[], int left, int ri...

  • Go语言实现快排+随机快排

    快排算法是一种本地算法,(即不需要额外的内存空间,就地排序) 基本思想:从这个数列里找一个数作为基准点(支点)跟其...

  • 2015.11.18[C primer 第一章读书笔记]

    今天学了快排,排重。 C primer 第一章 读书小记 1 c的特性 1.1 c融合了控制特性的现代语言,其设计...

  • 快排C语言实现,两种写法

    快排C语言实现 快排的主要思想就是把一组数分成两组,左边那一组的最大数都比右边的最小数小,然后再对左边那一组数进行...

  • 图解快排:Objective-C实现

    原理 一组数字,我们选取一个数字p,每一次都将小于p的数字放在左边,大于p的数字放在右边,那边一遍下来就会保证p的...

  • 标准的C++实现快排

    以下这样写法的编程框架要清晰很多,可以当标准解法来用。

  • sort()排序函数的实现

    c语言中sort()排序函数的实现。 实际上它并不仅仅用了快排这一种算法。 如果你去看源码,你就会发现,sort(...

  • QuickSort GoOver 2 多线程

    多线程下的快排: 每轮产生的新分区用新线程执行排序过程。 C#实现过程:

  • 转载:快排实现

    快速排序(Quicksort) 基本思想:(分治) 先从数列中取出一个数作为key值; 将比这个数小的数全部放在它...

网友评论

      本文标题:c语言实现快排

      本文链接:https://www.haomeiwen.com/subject/odsdortx.html