注册 登录
编程论坛 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
rolimi2016-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