以下关于Array数组对象的说法不正确的是()。
第1题:
插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到已排序序列中的正确位置,InsertSort 类的成员函数sort()实现了插入排序算法,请将画线处缺失的部分补充完整。
class InsertSort{
public:
InsertSort(int*a0,int n0):a(a0),n(n0){}//参数组首地址,n 是数组元素个数
void sort()
{//此函数假设已排离序列初始化状态只包含a[0],未排序序列初始为a[1]?a[n-1]
for (int i=1;iint j;
for( [14] j>0;--j){
if(t>a[j-1])break;
a[j]=a[j-1];}
a[j]=t;}}
protected:
int*a,n;//指针a 用于存放数组首地址,n 用于存放数组元素个数
};
i%2==0
第2题:
( 14 ) 插入排序算法的主要思想是 : 每次从未排序序列中取出一个数据 , 插入到已排序序列中的正确位置 。
InsertSort 类的成员函数 sort() 实现了插入排序算法。请将画线处缺失的部分补充完整。
class InsertSort{
public:
InsertSort(int* a0, int n0) :a(a0), n(n0) {} // 参数 a0 是某数组首地址, n 是数组元素个数
void sort( )
{// 此函数假设已排序序列初始化状态只包含 a[0] ,未排序序列初始为 a[1]...a[n-1]
for (int i=1; i
int t=a[i];
int j;
for ( 【 14 】 ; j>0; --j){
if (t>=a[j-1]) break;
a[j]=a[j-1];}
a[j]=t;}}
protected:
int *a, n; // 指针 a 用于存放数组首地址, n 用于存放数组元素个数
};
第3题:
此题为判断题(对,错)。
第4题:
for(i=0;i</**/m-1/**/;i++)
if/**/(a[j]<a[j+1])/**/
a[j]=/**/a[j+1]/**/;
第5题:
阅读下列说明、流程图和算法,将应填(n)处的字句写在对应栏内。
[说明]
下面的流程图(如图3所示)用N - S盒图形式描述了数组A中的元素被划分的过程。其划分方法是:以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动。当划分结束时,基准数定位于A[i],并且数组中下标小于i的元素的值均小于基准数,下标大于i的元素的值均大于基准数。设数组A的下界为 low,上界为high,数组中的元素互不相同。例如,对数组(4,2,8,3,6),以4为基准数的划分过程如下:
[流程图]
[算法说明]
将上述划分的思想进一步用于被划分出的数组的两部分,就可以对整个数组实现递增排序。设函数int p(int A[],int low,int hieh)实现了上述流程图的划分过程并返回基准数在数组A中的下标。递归函数void sort(int A[],int L,int H)的功能是实现数组A中元素的递增排序。
[算法]
void sort(int A[],int L,int H) {
if (L<H) {
k=p(A,L,R); //p()返回基准数在数组A中的下标
sort((4)); //小于基准敷的元素排序
sort((5)); //大于基准数的元素排序
}
}
第6题:
请帮忙给出正确答案和分析,谢谢
答案:
void select_sort(int Array[], int n)//n为数组a的元素个数
{
for (int i = 0; i<n - 1; i++)//进行N-1轮选择
{
int min_index = i;
for (int j = i + 1; j<n; j++)//找出第i小的数所在的位置
{
if (Array[j] > Array[min_index])
{
min_index = j;
}
}
//将第i小的数,放在第i个位置;如果刚好,就不用交换
if (i != min_index)
{
int temp = Array[i];
Array[i] = Array[min_index];
Array[min_index] = temp;
}
}
}
int main()
{
int num[7] = { 1, 2, 3, 4, 5, 6, 7};
select_sort(num, 7);
printf("\n结果如下:\n");
for(int i=0; i<7; i++)
{
printf("\n%d\n ", num[i]);
}
printf("\n");
}
测试结果:
解析:
选择排序(从小到大)的基本思想是,首先,选出最小的数,放在第一个位置;然后,选出第二小的数,放在第二个位置;以此类推,直到所有的数从小到大排序。
第7题:
A.add()
B.join()
C.sort()
D.length()
第8题:
A、如果列表中的各元素可直接比较大小,则可以不指定key参数
B、reverse参数决定了将列表中的元素按升序还是降序排列
C、key参数接收一个函数,通过该函数获取用于排序时比较大小的数据
D、reverse参数默认值为False,表示将列表中的元素按降序排列
第9题:
阅读下列说明、流程图和算法,将应填入(n)处的字句写在对应栏内。
【流程图说明】
下图所示的流程图5.3用N-S盒图形式描述了数组Array中的元素被划分的过程。其划分方法;以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动。当划分结束时,基准数定位于Array[i],并且数组中下标小于i的元素的值均小于基准数,下标大于i的元素的值均大于基准数。设数组A的下界为low,上界为high,数组中的元素互不相同。
【算法说明】
将上述划分的思想进一步用于被划分出的数组的两部分,就可以对整个数组实现递增排序。设函数int p(int Array[],int low,int high)实现了上述流程图的划分过程并返回基准数在数组Ar ray中的下标。递归函数void sort(int Array[],int L,int H)的功能是实现数组Array中元素的递增排序。
【算法】
void sort(int Array[],int L,int H){
if (L<H) {
k=p(Array,L,H);/*p()返回基准数在数组Array中的下标*/
sort((4));/*小于基准数的元素排序*/
sort((5));/*大于基准数的元素排序*/
}
}
第10题:
A.add( )
B.join( )
C.sort( )
D.length( )