7个回答
推荐于2017-09-20 · 知道合伙人软件行家
关注
展开全部
可将10个数放入数组,用冒泡排序将其按升序进行排序。
#include <iostream>
using namespace std;
// 冒泡排序长度为len的数组dat(升序)
void sort(int *dat, int len)
{
int tem;
for (int i = 0; i < len; i++)
{
for (int j = 0; j < len - i - 1; j++) // 比较一次后,则可少比较一个
if (dat[j] > dat[j+1]) // 大数在前面,则交换
{
tem = dat[j];
dat[j] = dat[j+1];
dat[j+1] = tem;
}
}
}
void output(int *dat, int len) // 输出数据
{
for (int i = 0; i < len; i++)
cout << ' ' << dat[i];
cout << endl;
}
int main()
{
int a[] = {9, 8, 3, 5, 7, 1, 6, 4, 0, 2};
sort(a, 10);
output(a, 10);
return 0;
}
展开全部
#include "stdafx.h"
#include <iostream>
using namespace std;
void k(int *a)
{
int j,i,t;
for(j=0;j<9;j++)
{
for(i=j+1;i<10;i++)
if(a[j]>a[i])
{
t=a[j];
a[j]=a[i];
a[i]=t;
}
cout<<a[j]<<" ";
}
cout<<a[j];
}
void main()
{
int a[10]={0},i;
for(i=0;i<10;i++)
{
cout<<"请输入第"<<i+1<<"个数"<<endl;
cin>>a[i];
}
cout<<"输入完毕"<<endl<<"改变后结果为";
k(a);
}
楼主,我已经测试过了,你直接复制生成就可以了……
程序有中文引导,我保证你绝对可以看懂,也会用,给分吧……
这个程序的缺点是一定要输入10个数,本来我想改成你输入几个数都可以的程序,但是怕是你的作业,所以就把它限定了……
#include <iostream>
using namespace std;
void k(int *a)
{
int j,i,t;
for(j=0;j<9;j++)
{
for(i=j+1;i<10;i++)
if(a[j]>a[i])
{
t=a[j];
a[j]=a[i];
a[i]=t;
}
cout<<a[j]<<" ";
}
cout<<a[j];
}
void main()
{
int a[10]={0},i;
for(i=0;i<10;i++)
{
cout<<"请输入第"<<i+1<<"个数"<<endl;
cin>>a[i];
}
cout<<"输入完毕"<<endl<<"改变后结果为";
k(a);
}
楼主,我已经测试过了,你直接复制生成就可以了……
程序有中文引导,我保证你绝对可以看懂,也会用,给分吧……
这个程序的缺点是一定要输入10个数,本来我想改成你输入几个数都可以的程序,但是怕是你的作业,所以就把它限定了……
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我想到的是,新建一个同样长度的空数组,然后从输入数组首位扫描到末位,扫描比当前数小的数字个数,如果是0,就将新数组下标0位赋值为这个数。
计数大小恰巧是下标数目。
这个算法应该比2L的快速,但是有个bug:两个数字大小相等的时候就会有问题。如果用可以支持插入的列表结构就没这个问题。
计数大小恰巧是下标数目。
这个算法应该比2L的快速,但是有个bug:两个数字大小相等的时候就会有问题。如果用可以支持插入的列表结构就没这个问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[11],i;
for(i=1; i<=10; ++i)
cin>>a[i];
sort(a+1,a+11);
for(i=1; i<=10; ++i)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
using namespace std;
int main()
{
int a[11],i;
for(i=1; i<=10; ++i)
cin>>a[i];
sort(a+1,a+11);
for(i=1; i<=10; ++i)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <iostream>
using namespace std;
int main()
{ void select_sort(int *p,int n);
int a[10],i;
cout<<"enter the originl array:"<<endl;
for(i=0;i<10;i++)
cin>>a[i];
cout<<endl;
select_sort(a,10);
cout<<"the sorted array:"<<endl;
for(i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
void select_sort(int *p,int n)
{int i,j,k,t;
for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(*(p+j)<*(p+k)) k=j;
t=*(p+k);*(p+k)=*(p+i);*(p+i)=t;
}
}
using namespace std;
int main()
{ void select_sort(int *p,int n);
int a[10],i;
cout<<"enter the originl array:"<<endl;
for(i=0;i<10;i++)
cin>>a[i];
cout<<endl;
select_sort(a,10);
cout<<"the sorted array:"<<endl;
for(i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
void select_sort(int *p,int n)
{int i,j,k,t;
for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(*(p+j)<*(p+k)) k=j;
t=*(p+k);*(p+k)=*(p+i);*(p+i)=t;
}
}
参考资料: 已通过编译测试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询