编写四个程序,分别用四种方法引用数组元素,输入十个整数,按升序排序,输出结果
答案:2 悬赏:40 手机版
解决时间 2021-03-01 04:41
- 提问者网友:沉默的哀伤
- 2021-03-01 00:30
编写四个程序,分别用四种方法引用数组元素,输入十个整数,按升序排序,输出结果
最佳答案
- 五星知识达人网友:一秋
- 2021-03-01 01:03
就是排序算法,可以考虑的算法包括:
直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序、归并排序、桶排序等。
提供一个冒泡排序吧,其他的建议自己实现:
typedef int DT;
void swap(DT* a, DT* b){
if(a!=b){
*a=*a ^ *b;
*b=*a ^ *b;
*a=*a ^ *b;
}
}
void bubble(DT* from, int len, int(*cmp)(DT,DT)){
int i, j, flag;
for(i=0; i<len-1; i++){
flag=0;
for(j=0;j<len-1-i;j++)
if((from[j+1]<from[j])){
swap(from+j+1, from+j);
flag=1;
}
if(!flag) break;
}
}
直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序、归并排序、桶排序等。
提供一个冒泡排序吧,其他的建议自己实现:
typedef int DT;
void swap(DT* a, DT* b){
if(a!=b){
*a=*a ^ *b;
*b=*a ^ *b;
*a=*a ^ *b;
}
}
void bubble(DT* from, int len, int(*cmp)(DT,DT)){
int i, j, flag;
for(i=0; i<len-1; i++){
flag=0;
for(j=0;j<len-1-i;j++)
if((from[j+1]<from[j])){
swap(from+j+1, from+j);
flag=1;
}
if(!flag) break;
}
}
全部回答
- 1楼网友:你哪知我潦倒为你
- 2021-03-01 02:18
#include
void main()
{
int x,i,j=10,a[11]={10,20,30,40,50,60,70,80,90,100,0};
printf("已有数列:10,20,30,40,50,60,70,80,90,100\n");
printf("请输入一个整数:");
scanf("%d",&x);
for(i=0;i<10;i++)if(x=j;i--)a[i]=a[i-1];
a[j]=x;
printf("新数列:");
for(i=0;i<11;i++)printf("%d,",a[i]);
getchar();
getchar();
getchar();
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯