问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言入门问题,求解答

发布网友 发布时间:2023-05-26 03:25

我来回答

2个回答

热心网友 时间:2024-05-18 17:47

bool cmp(const int &a,const int &b)
{
    if(a > b)return false;
    else return true;
}
template<class T>
void Swap(T &t1,T &t2)
{
    T tmp;
    tmp = t1,t1 = t2,t2=tmp;
}
void bubblesort(int arr[],int n)
{
    int i,j;
    bool flag = false;
    if(NULL == arr || n <= 0)return;
    for(i = 0;i < n - 1;i ++)
    {
        flag = false;
        for(j = 0;j < n - 1 - i;j ++)
        {
            if(cmp(arr[j],arr[j+1]))
            {
                Swap(arr[j],arr[j+1]);
                flag = true;
            }
        }
        if(!flag)
        {
            break;
        }
    }
}
void insertsort(int arr[],int n)
{
    int i,j;
    int insert;
    if(arr == NULL || n <= 0)return;
    for(i = 1;i <= n;i ++)
    {
        insert = arr[i];
        arr[0] = arr[i];
        for(j = i;cmp(arr[j-1],insert);j --)
        {
            arr[j] = arr[j-1];
        }
        arr[j] = insert;
    }
}
void selectsort(int arr[],int n)
{
    int i,j;
    for(i = 0;i < n;i ++)
    {
        int maxindex = 0;
        for(j = 0;j < n - i;j ++)
        {
            if(arr[maxindex] < arr[j])
            {
                maxindex = j;
            }
        }
        Swap(arr[maxindex],arr[n-1-i]);
    }
}
int partition(int arr[],int s,int e)
{
    int pov = arr[s];
    if(arr == NULL || s > e)return -1;
    else 
    {
        while(s < e)
        {
            while(s < e && cmp(arr[e],pov)) e--;
            arr[s] = arr[e];
            while(s < e && cmp(pov,arr[s])) s++;
            arr[e] = arr[s];
        }
        arr[s] = pov;
        return s;
    }
}
void Qsort(int arr[],int s,int e)
{
    if(arr == NULL || s > e)return;
    int pov = partition(arr,s,e);
    Qsort(arr,s,pov - 1);
    Qsort(arr,pov + 1,e);
}

int main()
{
    int arr[] = {-1,9,5,1,2,3,4,8,77,6,88,100,-8,11,12,13,10,89,5689,-9,777,999};
    typedef int sizet;
    sizet size = 21;
    int algorithm = 3;
    switch(algorithm)
    {
    case 0:
        bubblesort(arr,size);
        break;
    case 1:
        insertsort(arr,size);
        break;
    case 2:
        selectsort(arr,size+1);
        break;
    case 3:
        Qsort(arr,0,size);
        break;
    }
    
    for(int i = 0;i <= size;i ++)
        if(i < size)cout << arr[i] << " , ";
        else cout << arr[i] << endl;
    return 0;
}

根据修改cmp函数可以实现升序和降序

热心网友 时间:2024-05-18 17:47

说的具体点,你想实现什么
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
体育运动员谁最有钱? 曲轴箱通风管漏气 有什么现象 曲轴箱强制通风管漏气? 曲轴箱(曲轴箱通风管坏了有什么影响) 100分求CS PING的问题 枇杷有什么作用与功效与作用 枇杷的功效和作用 三星手机大全5660三星手机大全所有型号图片 三星s5660能用动感地带152号段的卡上wlan吗? 我的三星S5660插移动卡就会显示只能进行紧急呼叫,用联通卡没问题,把卡... 过继跟领养的区别 返甬码填完还会打电话吗 求一首英文歌,歌词有句加尼弗尼亚,很欢快。 波轮洗衣机电容坏了有什么特征 宝宝多大体质慢慢变好 用手跪着耳朵耳朵疼预示着身体哪个部位出现了 一个人跪在地上耳朵上还戴着一个东西打一成语 脚气王的脚气王1 THP发动机与GTDi发动机哪个更先进 项链上的rcz是什么意思? 黄芩是什么科属 虞姬王者荣耀怎么打敌人进退两难??有啥技巧 jf男女之间是啥意思 宏基电源上有个H开头的单词是什么的? 电源设备属于什么行业 王者荣耀灵活走位型射手盘点 我说要出去吃饭,男的问我和谁一起吃呀,他干嘛呢?问这个干嘛? 如果一个女孩会每一次都和你说她跟谁去吃饭! 这是舍意思啊?_百度... 男方结婚青龙见喜怎么贴? 三点八的发动机和二点五的发动机有什么区别 c语言的问题!!急!! 《千里江陵一日还gl》苏牧小说txt全集免费下载 玄关风水摆件放什么好?手把手教您布置玄关好风水 发生输液反应时应用什么或什么维持静脉通道? 计算机专硕院校排名 计算机专业考研排名? 赠从弟的意思 赠从弟的意思是什么 糖水化爱情啥意思? tn4g18t是什么牌子的发动机? 制作简历,封面图片需要全页面,可以通过页面布局来设置,但第二页的... 梦见别人搬家弄得楼梯好多垃圾啥意思 梦见堆积如山敞垃圾的预兆 土地查封的效力范围 云平台的使用可以不通过互联网进行访问 智能雾化云平台使用方法 怎么使用云平台进行英语绘本阅读 优教云平台的使用好处是什么呢 问道经验预订锁什么意思 汽油发动机溢流管的作用是什么? 汽车散热水箱的溢流管的作用?