C语言谁能告诉我 数据结构和算法里 快速排序 是怎么弄的?定义两个指针,和一个关键字 具体怎么弄?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

C语言谁能告诉我 数据结构和算法里 快速排序 是怎么弄的?定义两个指针,和一个关键字 具体怎么弄?

2018-07-22 20:43:08 2179 3
最好有程序 感激不尽!
取消 提交回答
全部回答(3)
  • 祁同伟
    2019-07-17 22:53:18
    快速排序是基于分治思想的排序算法。
    一般的快排是把大于第一个数的放到右边,小于第一个数的放到左边,然后再对分成的两部分递归。
    很简单的一个算法。
    现在这里没有编译器,代码不好敲。如果你理解能力或动手能力比较差非常需要代码的话,就追问吧~~
    0 0
  • 小旋风柴进
    2019-07-17 22:53:18
    #include <iostream>
    using namespace std;
    typedef int T;
    void sort(T* a, const int& n){
    if(n<=1) return;
    int pivot = a[0];
    int i=0;
    int j=n-1;
    while(i<j){
    while(i<j && a[j]>=pivot)
    j--;
    if(i<j)
    // a[i++] = a[j];
    // swap(a[i++],a[j]);
    { swap(a[i],a[j]);
    i++;
    }
    while(i<j && a[i]<=pivot)
    i++;
    if(i<j)
    // a[j--] = a[i];
    // swap(a[j--],a[i]);
    {
    swap(a[j],a[i]);
    j--;
    } }
    a[i] = pivot;
    // sort(a+1,i-1);
    // sort(a+i,n-i);
    sort(a+1,i);
    }
    int main()
    {
    const int N=10240;
    int a[N];
    for(int i=0; i<N; i++)
    a[i]=N-i;
    time_t t1=time(NULL);
    sort(a,N);
    time_t t2=time(NULL);
    for(int i=0; i<30; i++)
    cout << a[i] << " ";
    cout << "t2-t2=" << t2-t1 ;
    cout << endl;}

    这个就是快速排序吧 找到小的 往前换 ; 找到大的 往后换
    0 0
  • 管理贝贝
    2019-07-17 22:53:18
    int partition(TypeR[], int low, int high){
    R[0]=R[low];
    pivotkey=R[low].key;
    while(low<high){
    while(low<high&&R[high].key>=pivotkey)
    --high;
    R[low]=R[high];
    while(low<high&&R[low].key<=pivotkey)
    ++low;
    R[high]=R[low];}
    R[low]=R[0];
    }
    R[low]=R[0];
    return low;
    }
    0 0
添加回答
相关问答

2

回答

你好!1 2 3 4 5 6 7 8 9=1 整么解出来的呀?能简单的描述算法吗?C语言的递归也可以

2018-07-22 13:59:04 1031浏览量 回答数 2

1

回答

这个算法第六行,和第七行的递归有什么用?求c语言大神讲解。。。

2018-07-16 12:16:59 1168浏览量 回答数 1

1

回答

C语言中数组作为参数传递给函数时,可以通过sizeof得到数组的大小吗?

2022-03-29 15:10:59 393浏览量 回答数 1

1

回答

C语言中Swap是一个什么函数呢?

2022-03-29 17:21:11 336浏览量 回答数 1

1

回答

C语言中swap函数的作用和方法是什么呢?

2022-03-29 17:25:38 272浏览量 回答数 1

1

回答

C语言函数中语句return0表示什么呀?

2022-03-29 17:30:14 226浏览量 回答数 1

1

回答

C语言函数中,想重复打印多个*号,需要采用什么形式呢?代码是什么呀?

2022-03-29 17:58:12 241浏览量 回答数 1

1

回答

C语言怎么实现函数不定参数

2016-06-08 20:17:34 2282浏览量 回答数 1

1

回答

C语言中函数数组调用问题

2016-03-20 10:11:14 1620浏览量 回答数 1

1

回答

C语言中函数数组调用问题

2016-03-20 10:23:53 1955浏览量 回答数 1
+关注
文章
问答
问答排行榜
最热
最新
相关电子书
更多
数据+算法定义新世界
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载