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

开发者社区> 知与谁同> 正文

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

2018-07-22 20:43:08 1608 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
添加回答
相关问答

1

回答

如何构建机器学习算法?

问问小秘 2020-04-15 14:07:23 35403浏览量 回答数 1

17

回答

教你如何简单将OSS bucket挂载成为阿里云ECS服务器本地盘

梦丫头 2017-02-17 14:01:12 37893浏览量 回答数 17

38

回答

干货分享:DBA专家门诊一期:索引与sql优化问题汇总

xiaofanqie 2014-12-25 15:13:38 91777浏览量 回答数 38

9

回答

阿里云ECS安装虚拟主机系统DirectAdmin开心版百分百成功的方法

hxs 2014-05-26 20:05:30 34385浏览量 回答数 9

37

回答

阿里官方Java代码规范标准《阿里巴巴Java开发手册》下载

管理贝贝 2017-02-10 15:14:36 74975浏览量 回答数 37

13

回答

【阿里云产品公测】开放搜索服务之 智能聊天实现

啊里新人 2014-10-21 10:41:20 33514浏览量 回答数 13

3

回答

2020年05月编程排行榜-C语言继2015年,重新成为编程排行榜第一名

huc_逆天 2020-05-06 13:43:42 35319浏览量 回答数 3

26

回答

云数据库OceanBase的架构演进【精品问答集锦】

管理贝贝 2016-09-02 16:57:42 44052浏览量 回答数 26

24

回答

比赛_快速入门_4_19_update_仅供参考,思维不要受局限

小斯never 2015-03-22 18:22:43 33073浏览量 回答数 24

10

回答

阿里云centos静默安装oracle

美味的小鱼 2014-08-12 14:23:44 30493浏览量 回答数 10
+关注
10077
文章
2994
问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载