编程论坛
注册
登录
编程论坛
→
C++教室
编程实现将10个整数升序排列。
XHD0403
发布于 2016-11-29 12:16, 1660 次点击
要求
从键盘输入10个整数存放在一个一维数组中,调整10个数按从小到大的顺序排列,并输出。分别用冒泡法和选择法实现。(写两个程序)
求大神!!!!
2 回复
#2
炎天
2016-11-30 00:31
冒泡
#include<iostream>
#include<iomanip>
using namespace std;
main()
{
cout<<"请输入10个数据:"<<endl;
int a[10];
for(int i = 0; i < 10; i++)
{
cin>>a[i];
}
for(int i = 0; i <10; i++)
{
for(int j = 0; j < 10-i-1; j++)
{
if(a[j] >= a[j+1])
{
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for(int i = 0; i < 10; i++)
{
cout<<setw(3)<<a[i]<<endl;
}
return 0;
}
选择
#include<iostream>
#include<iomanip>
using namespace std;
main()
{
int a[10];
cout<<"请输入10个数据:"<<endl;
for(int i = 0; i < 10; i++)
{
cin>> a[i];
}
for(int i = 0; i < 10; i++)
{
for(int j = i; j < 10; j++)
{
if(a[i] >= a[j])
{
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
for(int i = 0; i < 10; i++)
{
cout<< setw(3)<< a[i];
}
return 0;
}
#3
rolimi
2016-12-01 18:38
程序代码:
selection-sort(A)
for
i =
2
to A.length:
v = A[i]
for
j = i-
1
down to
1
:
if
A[j] > v:
A[j+
1
] = A[j]
A[j+
1
] = v
程序代码:
bubble-sort(A)
j=A.length
while
j >
1
:
k =
1
for
i =
1
to j -
1
:
if
A[i] > A[i+
1
]:
swap(A[i], A[i+
1
])
k = i
j = k
//把插入排序和选择排序弄反了。。。算了,不写了,反正百度一下一大堆
[此贴子已经被作者于2016-12-1 18:43编辑过]
1