排序

*
您的姓名:
*
1.
看程序写结果:
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
int n=7,i,j,k,a[]={5,6,2,1,9,4,3};
for(i=n-1;i>=0;i--)
for (j=0;j<i;j++)
if(a[j]<a[j+1]){
k=a[j];
a[j]=a[j+1];
a[j+1]=k;
}
for(i=0;i<n;i++)cout<<a[i]<<" ";

}
*
2.
用某种排序方法对序列(25,84,21,47,15,27,68,35,20)进行排序,记录序列的变化情况如下:

25 84 21 47 15 27 68 35 20

15 20 21 25 47 27 68 35 84

15 20 21 25 35 27 47 68 84

15 20 21 25 27 35 47 68 84

则采取的排序方法是 ( )

 ①直接选择排序②冒泡排序 ③快速排序 ④二路归并排序
①直接选择排序
②冒泡排序
③快速排序
④插入排序
*
3.
( )方法是从未排序序列中依次取出元素与已排序序列中的元素作比较,将其放入已排序序列的正确位置上。

①归并排序 ② 插入排序 ③快速排序 ④选择排序
①归并排序
② 插入排序
③快速排序
④选择排序
*
4.
( )方法是对序列中的元素通过适当的位置交换将有关元素一次性地放置在其最终位置上。

①冒泡排序 ②插入排序 ③快速排序 ④选择排序
①冒泡排序
②插入排序
③快速排序
④选择排序
*
5.
以下稳定的排序方法是 ( )
①快速排序 ②冒泡排序 ③直接选择排序 ④ 堆排序
①快速排序
②冒泡排序
③直接选择排序
④ 堆排序
6.
小明想编写一个改进的从小到大的选择排序算法,一般人喜欢从左到右开始排序的思路,但他想从右往左进行排序。请你帮他完善一下程序。*
数据样例:
输入:
5
6 3 9 4 7
输出:
3 4 6 7 9
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,i,j,k,a[1001],f;
cin>>n;
for(i=1;i<=n;i++)cin>>a[i];
for(i=n;i>=2;i--)
{
f=【1】;
for (j=【2】;j>=1;j--)
if(a[j]>a[f]) 【3】;
if (f!=【4】){
k=a[i];
【5】;
a[f]=k;
}
}
for(i=1;i<=n;i++)cout<<a[i]<<" ";
return 0;
}
【1】:【2】:【3】:【4】:【5】:
7.
小明想编写一个从左到右从小到大排序的插入排序算法,一般人喜欢从左到右开始排序的思路,但他总想从右往左进行排序。请你帮他完善一下程序。*
样例:
输入:
5
6 3 9 4 7
输出:
3 4 6 7 9
#include<iostream>
using namespace std;
int main(){
int n,i,j,k,a[1001],r;
cin>>n;
for(i=1;i<=n;i++)cin>>a[i];
for(i=n-1;i>=1;i--)
{
r=【1】;j=【2】;
while (r>【3】&&j<=n) {
【4】=a[j];
j++;
}
【5】=r;
}
for(i=1;i<=n;i++)cout<<a[i]<<" ";
return 0;
}
【1】:【2】:【3】:【4】:【5】:
问卷星提供技术支持
举报