题目内容 (请给出正确答案)
[单选题]

下列哪个方法是对数组元素进行排序的()。

A.add()

B.join()

C.sort()

D.length()

查看答案
如搜索结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能会需要:
您的账号:
发送账号密码至手机
发送
更多“下列哪个方法是对数组元素进行排序的()。”相关的问题

第1题

下列关于算法的说法中,错误的是________。

A、迭代法利用问题本身的递推关系求解问题的一种方法,例如利用迭代法可求高次方程的精确解。

B、枚举法的基本思想是采用搜索的方法,在答案的大致范围中对所有情况逐一验证,直到所有情况验证完毕。

C、选择排序是每次在无序数中找最小(或最大)数的下标,然后存放在无序数的第一个位置。

D、冒泡排序在每一轮排序时将相邻两个数组元素进行比较,次序不对时立即交换位置。

点击查看答案

第2题

阅读以下说明和 C 代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 对一个整数序列进行快速排序的方法是:在待排序的整数序列中取第一个数作为基准值,然后根据基准值进行划分,从而将待排序列划分为不大于基准值者(称为左子序列)和大于基准值者(称为右子序列),然后再对左子序列和右子序列分别进行快速排序, 最终得到非递减的有序序列。 函数 quicksort(int a[],int n)实现了快速排序,其中,n 个整数构成的待排序列保存在数组元素 a[0]-a[n-1]中。

【C 代码】 include < stdio.h> void quicksort(int a[] ,int n) { int i ,j; int pivot = a[0]; //设置基准值 i =0; j = n-l; while (i< j) { while (i<j &&(1)) j-- //大于基准值者保持在原位置 if (i<j) { a[i]=a[j]; i++;} while (i,j &&(2)) i++; //不大于基准值者保持在原位置 if (i<j) { a[j]=a[i]; j--;} } a[i] = pivot; //基准元素归位 if ( i>1) (3) ; //递归地对左子序列进行快速排序 if ( n-i-1>1 ) (4) ; //递归地对右子序列进行快速排序 } int main () { int i,arr[ ] = {23,56,9,75,18,42,11,67}; quicksort ( (5) ); //调用 quicksort 对数组 arr[ ]进行排序 for( i=0; i<sizeof(arr) /sizeof(int); i++ ) printf(" %d\t" ,arr[i]) ; return 0; }

点击查看答案

第3题

阅读下列说明、流程图和算法,将应填入(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));/*大于基准数的元素排序*/

}

}

点击查看答案

第4题

●试题二

阅读下列说明、流程图和算法,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

下面的流程图(如图3所示)用N-S盒图形式描述了数组A中的元素被划分的过程。其划分方法是:以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动。当划分结束时,基准数定位于A[i],并且数组中下标小于i的元素的值均小于基准数,下标大于i的元素的值均大于基准数。设数组A的下界为low,上界为high,数组中的元素互不相同。例如,对数组(4,2,8,3,6),以4为基准数的划分过程如下:

【流程图】

图3流程图

【算法说明】

将上述划分的思想进一步用于被划分出的数组的两部分,就可以对整个数组实现递增排序。设函数int p(int A[],int low,int high)实现了上述流程图的划分过程并返回基准数在数组A中的下标。递归函数void sort(int A[],int L,int H)的功能是实现数组A中元素的递增排序。

【算法】

void sort (int A[], int 1,int H){

if ( L<H){

k=p(A,L,R);//p()返回基准数在数组A中的下标

sort( (4) );//小于基准数的元素排序

sort( (5) );//大于基准数的元素排序

}

}

点击查看答案

第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题

阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。

【说明】

下面的函数sort(int n,int a[])对保存在数组a中的整数序列进行非递减排序。由于该

序列中的元素在一定范围内重复取值,因此排序方法是先计算出每个元素出现的次数并

记录在数组b中,再从小到大顺序地排列各元素即可得到一个非递减有序序列。例如,

对于序列6,5,6,9,6,4,8,6,5,其元素在整数区间[4,9]内取值,因此使数组元素b[O]~b[5]的下标O~5分别对应数值4~9,顺序地扫描序列的每一个元素并累计其出现的次数,即将4的个数记入b[0],5的个数记入b[l],依此类推,9的个数记入b[5]。最后依

次判断数组b的每个元素值,并将相应个数的数值顺序地写入结果序列即可。

对于上例,所得数组b的各个元素值如下:

那么在输出序列中写入1个4、2个5、4个6、1个8、1个9,即得4,5,5,6,6,6,6,8,9,

从而完成排序处理。

【C函数】

void sort(int n,int a[])

( int *b;

int i, k, number;

int minimum=a[0], maximum=a 0];

/.minimum和maximum分别表示数组a的最小、最大元素值*/

For(i=1;i<n;i++) {

if ( _(1) ) minimum = a[j];

else

if ( _ (2) ) maximum = a[i];

}

number = maximum - minimum + 1;

if (number<=l) return;

b = (int *) calloc (number, sizeod (int) ;

if ( !b) return;

for(f=0;i<n,i++){/*计算数组a的每个元素值出现的次数并记入数组b*/

k= a[i] - minimum; ++b[k];

}

/*按次序在数组a中写入排好的序列*/

l= (3) ;

for( k=0; k<number; k++)

for(; (4) ;一一b[k] )

a[i++】=minimum+ (5)’ ;

}

点击查看答案

第7题

阅读以下说明及Visual Basic程序代码,将应填入(n)处的字句写在对应栏内。

[说明]

下面的程序演示了根据随机产生的奖牌数,生成金银奖牌榜的过程。程序使用的排序法是简单排序法。以金牌得数为例,其思想是选择最大的元素,将它交换到最前面;然后对剩下的部分采用同样的方法,直到全部排序完成。

程序界面中,左右两个文本框分别用于存放随机产生的奖牌数以及生成的奖牌榜,名为Text1和Text2,上下两个按钮分别名为Command1和Command2。代码中使用的量主要有:一维数组 cntries,用于存储10个国家的名称,二维数组medals,其元素medals(i,0)和medals(i,1)分别用于存放第i个(i从0开始)国家的金、银牌数目。

[Visual Basic代码]

Dim cntries(10) As String, medals(10,2) As Integer

’随机产生奖牌数

Sub newMedals()

…… ’为数组cntries和medals赋值

End Sub

’输出奖牌榜

Sub printOut(txt As (1) )

Dim strResuh As String, i As Integer

strResult=“国家”& Chr(9) &“金牌数”& Chr(9) &“银牌数”& vbCrLf

For i=0 To 9

strResult = strResult & cntries(i) & Chr(9) & medals(i,0) & Chr(9) & medals(i,1) & vbCrLf

Next

txt.Text = strResult

End Sub

’交换两变量的值

Sub exchange( (2) a As Variant, (2) b As Variant)

Dim temp As Variant

temp = a: a = b: b = temp

End Sub

’随机产生并输出奖牌数

Private Sub Command1_Click()

newMedals

printOut Text1

End Sub

’生成并输出奖牌榜

Private Sub Command2_Click()

Dim i,j, k As Integer, temp As String

For i = 0 To 9 ’按金牌数排序

j = i ’找到自第i个位置起全部数据中金牌得数最多者,记其下标为j

For k = i + 1 To 9

If (3) Then j=k

Next

If i < > j Then ’若i,j不等,则交换对应位置的国家名、金银牌数目

exchange cntnes(i), entries(j)

exchange medals(i, 0), medals(j, 0)

exchange medals(i, 1), medals(j, 1)

End If

Next

For i = 0 To 9 ’按银牌数进行二次排序

j = i

For k = i + 1 To 9

If medals(k,0) <> medals(j, 0) Then (4)

If (5) Then j = k

Next

If i < > j Then

exchange cntries(i), cntries(j)

exchange medals(i, 1), medals(j, 1)

End If

Next

printOut Text2

End Sub

点击查看答案

第8题

在Array类中,可以对一维数组中的元素进行排序的方法是()。

A. Sort()

B. Clear()

C. Copy()

D. Reverse()

点击查看答案

第9题

若有以下定义语句:int a[10]={1,2,3,4,5,6,7,8,9,10}; 则下列哪个是对该数组元素的正确引用( )

A. a[10]

B. a[a[3]-5]

C. a[a[9]]

D. a[a[4]+4]

点击查看答案

第10题

下列给定的程序中,函数fun()的功能是:用选择法对数组中的n个元素按从大到小的顺序进行排序。请改正程序中的错误,使它能得到正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

include<stdio.h>

define N 20

void fun(int a[ ],int n)

{

int i,j,t,p;

/*************found*************/

for(j=0;j<n-1;j++) ;

{

p=j;

for(i=j;i<n;i++)

if(a[i)>a[p])

p=i;

t=a[p];

a[p]=a[i];

/*************found**************/

a[p]=t;

}

}

main()

{

int a[N]={11,32,-5,2,14},i,m=5;

printf(“排序前的数据:”);

for(i=0;i<m;i++)

printf(“%d”,a[i]);

printf(“\n”);

fun(a,m);

printf(“排序后的顺序:”);

for(i=0;i<m;i++)

printf(“%d”,a[i]);

printf(“\n”);

}

点击查看答案
热门考试 全部 >
相关试卷 全部 >
账号:
你好,尊敬的上学吧用户
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,
如果您知道正确答案,欢迎您来纠错

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
上学吧
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
上学吧
点击打开微信