标题:请问大佬,这个冒泡排序可以改成其他的排序方法吗?
只看楼主
木偶人丶
Rank: 2
等 级:论坛游民
帖 子:36
专家分:16
注 册:2017-3-3
结帖率:88.89%
已结贴  问题点数:20 回复次数:5 
请问大佬,这个冒泡排序可以改成其他的排序方法吗?

程序代码:
#include<stdio.h>
#include<stdlib.h>

int main()
{
    int *p,n,i,j,end,num,temp1,temp2;
    scanf("%d",&n);
    p = (int *) malloc((n+1)*sizeof(int)) ;
    for(i=0;i<n;i++)
    {
        scanf("%d",p+i);
    }
    scanf("%d",&num);
    if(num>=p[n-1]){
        p[n] = num;
    } else
    {
        for(i=0;i<n+1;i++)
        {
            if(num<p[i])
            {
                temp1 = p[i];
                p[i] = num;
            for(j=i+1;j<n+1;j++)
            {
                temp2 = p[j];
                p[j] = temp1; 
                temp1 = temp2;
            }
            break;
            }
        }
    }
    for(i=0;i<n+1;i++)
    {
        printf("%d,",p[i]);
    }
    return 0;
}
搜索更多相关主题的帖子: int num 排序 for 冒泡排序 
2019-10-24 23:11
木偶人丶
Rank: 2
等 级:论坛游民
帖 子:36
专家分:16
注 册:2017-3-3
得分:0 
或者可以更好的完善这个这个程序?
2019-10-24 23:25
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
这个冒泡排序
哪来的排序?题目中没要求排序,你的代码中也没有排序。
2019-10-25 09:05
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:554
专家分:3690
注 册:2019-7-29
得分:10 
程序代码:
#include<stdio.h>
#include<stdlib.h>

int main()
{
    int *p,n,i,j,end,num,temp1,temp2;
    printf("请输入序列表长度:");
    scanf("%d",&n);
    p = (int *) malloc((n+1)*sizeof(int)) ;
    printf("请输入递增有序序数列:");
    for(i=0;i<n;i++)
    {
        scanf("%d",p+i);
    }
    while(1)
    {
        printf("请输入要插入的数据:");
        scanf("%d",&num);
        n++;
        p = (int *) realloc(p,(n+1)*sizeof(int)) ;
        if(num>=p[n-2])
        {
            p[n-1] = num;
        }
        else
        {
            for(i=n-2;i>=0;i--)
            {
                if(num>p[i])
                {
                    p[i+1] = num;
                    break;
                }
                else
                {
                    p[i+1]=p[i];
                }
            }
        }
        for(i=0;i<n;i++)
        {
            printf("%d,",p[i]);
        }
    }
    return 0;
}

p = (int *) realloc(p,(n+1)*sizeof(int)) ;每次输入数据后,将分配的内存空间扩大一次

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-10-25 12:50
木偶人丶
Rank: 2
等 级:论坛游民
帖 子:36
专家分:16
注 册:2017-3-3
得分:0 
回复 4楼 纯蓝之刃
谢谢大佬,非常非常感谢
2019-10-25 13:11
木偶人丶
Rank: 2
等 级:论坛游民
帖 子:36
专家分:16
注 册:2017-3-3
得分:0 
回复 3楼 rjsp
可能是我没表达好吧,但是还是很感谢版主给了我这个请教大佬的机会。
2019-10-25 13:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-497431-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.295748 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved