云栖社区聚能聊、问答管理员~发福利、搞怪,八卦我来,论技术、发话题、写博客你上!
#include <iostream>
#include <valarray>
using namespace std;
void line(int*a,int n)//选择排序,从大到小,如果要从小到大,把中间那个if的小于号改成大于号
{
int i,j;
for (i=1;i<=n-1;i++)//确保不重复
for (j=i+1;j<=n;j++)
if (a[i]<a[j])//前面的小于后面的
swap(a[i],a[j]);//交换
}
int main()
{
int n,a[15];
cin>>n;
int i;
for (i=1;i<=n;i++)cin>>a[i];
line(a,n);
for (i=1;i<=n;i++)cout<<a[i]<<" ";
cout<<endl;
system("pause");
/*详细推倒过程
随机写几个数
5 1 6 4 7
i=1,j=2
5 1 6 4 7
i=1,j=3
6 1 5 4 7 //后面的比前面的大
i=1,j=4
6 1 5 4 7
i=1,j=5
7 1 5 4 6
第一个已经为最大,从第二个开始
i=2,j=3
7 5 1 4 6
i=2,j=4
7 5 1 4 6
i=2,j=5
7 6 1 4 5
第二个已经为次大
后面的我不推了
效率O(n*(n-1)/2)
*/
return 0;
}
2019-07-17 22:49:56