关于C语言一维数组排序问题
答案:3 悬赏:0
解决时间 2021-01-17 13:34
- 提问者网友:沉默菋噵
- 2021-01-16 14:15
关于C语言一维数组排序问题
最佳答案
- 二级知识专家网友:我住北渡口
- 2021-01-16 15:04
冒泡排序法:
#include
void main()
{ int a[5]={5,4,3,2,9},i,k,temp;
for(k=0;k<5;k++)
{for(i=k+1;i<5;i++)
if(a[k] {temp=a[k];
a[k]=a[i];
a[i]=temp;
}
printf(" %d",a[k]);
}
getch();
}
以下是各种基本排序的算法,有时间可以看看
选择排序:
#include "stdio.h"
#define N 5
main()
{
int i,j,k,t;
int a[N];
printf("请输入五位数:\n");
for(i=0;i scanf("%d",&a[i]);
for(i=0;i {
k=i;
for(j=i+1;j if(a[k]>a[j]) k=j;
if(i!=k)
{
t=a[k];
a[k]=a[i];
a[i]=t;
}
}
for(i=0;i printf("%d\t",a[i]);
printf("\n");
}
插入排序法:
#include "stdio.h"
#define N 5
main()
{
int i,j,k;
int a[N];
printf("请输入五位数:\n");
for(i=0;i scanf("%d",&a[i]);
for(i=0;i {
k=a[i];
j=i-1;
while(j>=0&&k {
a[j+1]=a[j];
j--;
}
a[j+1]=k;
}
for(i=0;i printf("%d\t",a[i]);
printf("\n");
}
shell排序法:
#include "stdio.h"
#define N 10
main()
{
int i,j,k,m,flag;
int a[N]={10,33,23,45,12,67,44,22,33,18};
m=N;
while(m>1)
{
m=(m+1)/2;
do
{
flag=0;
for(i=0;i {
j=i+m;
if(a[i]>a[j])
{
k=a[i];a[i]=a[j];a[j]=k;flag=1;
}
}
}while(flag);
}
for(i=0;i printf("%d ",a[i]);
printf("\n");
}
如果对你有所帮助,请记得采纳最佳答案,谢谢!
#include
void main()
{ int a[5]={5,4,3,2,9},i,k,temp;
for(k=0;k<5;k++)
{for(i=k+1;i<5;i++)
if(a[k] {temp=a[k];
a[k]=a[i];
a[i]=temp;
}
printf(" %d",a[k]);
}
getch();
}
以下是各种基本排序的算法,有时间可以看看
选择排序:
#include "stdio.h"
#define N 5
main()
{
int i,j,k,t;
int a[N];
printf("请输入五位数:\n");
for(i=0;i
for(i=0;i
k=i;
for(j=i+1;j
if(i!=k)
{
t=a[k];
a[k]=a[i];
a[i]=t;
}
}
for(i=0;i
printf("\n");
}
插入排序法:
#include "stdio.h"
#define N 5
main()
{
int i,j,k;
int a[N];
printf("请输入五位数:\n");
for(i=0;i
for(i=0;i
k=a[i];
j=i-1;
while(j>=0&&k {
a[j+1]=a[j];
j--;
}
a[j+1]=k;
}
for(i=0;i
printf("\n");
}
shell排序法:
#include "stdio.h"
#define N 10
main()
{
int i,j,k,m,flag;
int a[N]={10,33,23,45,12,67,44,22,33,18};
m=N;
while(m>1)
{
m=(m+1)/2;
do
{
flag=0;
for(i=0;i
j=i+m;
if(a[i]>a[j])
{
k=a[i];a[i]=a[j];a[j]=k;flag=1;
}
}
}while(flag);
}
for(i=0;i
printf("\n");
}
如果对你有所帮助,请记得采纳最佳答案,谢谢!
全部回答
- 1楼网友:渡鹤影
- 2021-01-16 17:43
你的思路不清晰
#include "stdio.h"
main()
{
int a[5]={5,4,3,2,9},i,j,t;
for(i=4;i>0;i--)
for(j=0;j {
if(a[j]>a[j+1])
{
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
for(i=0;i<5;i++)
printf("%3d",a[i]);
}
你试试看有问题没
#include "stdio.h"
main()
{
int a[5]={5,4,3,2,9},i,j,t;
for(i=4;i>0;i--)
for(j=0;j {
if(a[j]>a[j+1])
{
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
for(i=0;i<5;i++)
printf("%3d",a[i]);
}
你试试看有问题没
- 2楼网友:妄饮晩冬酒
- 2021-01-16 16:09
#include
#include
void main()
{
int a[5]={5,4,3,2,9},i,k,min,temp;
for(k=0;k<5;k++)
{
for(i=1;i<5;i++)
if(a[i]
{
temp=a[k];
a[k]=a[i];
a[i]=temp;
}
printf(" %d",a[k]);
}
system("pause");
}
#include
void main()
{
int a[5]={5,4,3,2,9},i,k,min,temp;
for(k=0;k<5;k++)
{
for(i=1;i<5;i++)
if(a[i]
{
temp=a[k];
a[k]=a[i];
a[i]=temp;
}
printf(" %d",a[k]);
}
system("pause");
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯