冒泡排序对一维数组进行从大到小排序,一趟排序后会将数组中的()排到最后A、最大值B、最小值C、下标最大的值D、下标最小的值

题目

冒泡排序对一维数组进行从大到小排序,一趟排序后会将数组中的()排到最后

  • A、最大值
  • B、最小值
  • C、下标最大的值
  • D、下标最小的值
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

快速排序在下列()情况下最易发挥其长处。

A.被排序的数据中含有多个相同排序码

B.被排序的数据已基本有序

C.被排序的数据完全无序

D.被排序的数据中的最大值和最小值相差悬殊


参考答案:C
解释:B选项是快速排序的最坏情况。

第2题:

本程序用冒泡法对数组a[]的元素从大到小排序,请在程序空白处填空。


正确答案:

第3题:

● 在直接插入排序、冒泡排序、简单选择排序和快速排序方法中,能在第一趟排序结束后就得到最大(或最小)元素的排序方法是 (43) 。

(43)

A. 冒泡排序和快速排序

B. 直接插入排序和简单选择排序

C. 冒泡排序和简单选择排序

D. 直接插入排序和快速排序


正确答案:C

第4题:

有一组无序排列的整数数组如{1,5,7,9,2} 通过算法实现对该数组按从大到小的顺序进行排序,输出排序后的结果同时输入原始数组的数组索引下标,如输出排序结果为{9,7,5,2,1},输出原始数组索引下标为{3,2,1,4,0}。


正确答案:
 

第5题:

阅读以下算法说明,根据要求回答问题1~问题3。

[说明]

快速排序是一种典型的分治算法。采用快速排序对数组A[p..r]排序的3个步骤如下。

1.分解:选择一个枢轴(pivot)元素划分数组。将数组A[p..r]划分为两个子数组(可能为空)A[p..q-1]和A[q+1..r],使得A[q]大于等于A[p..q-1]中的每个元素,小于A[q+1..r]中的每个元素。q的值在划分过程中计算。

2.递归求解:通过递归的调用快速排序,对子数组A[p..q-1]和A[q+1..r]分别排序。

3.合并:快速排序在原地排序,故无需合并操作。

下面是快速排序的伪代码,请将空缺处(1)~(3)的内容填写完整。伪代码中的主要变量说明如下。

A:待排序数组

p,r:数组元素下标,从p到r

q:划分的位置

x:枢轴元素

i:整型变量,用于描述数组下标。下标小于或等于i的元素的值,小于或等于枢轴元素的值

j:循环控制变量,表示数组元素下标


正确答案:这是一道考查快速排序算法伪代码的分析题。快速排序是对冒泡排序的一种改进其基本思想是:通过一趟排序将要排序的数据分割成独立的两部分其中一部分的所有数据都比另外一部分的所有数据都要小然后再按此方法对这两部分数据分别进行快速排序整个排序过程可以递归进行以此达到整个数据变成有序序列。快速排序最核心的处理是进行划分即PARTITION操作:根据枢轴元素的值把一个较大的数组分成两个较小的子数组一个子数组的所有元素的值小于等于枢轴元素的值一个子数组的所有元素的值大于枢轴元素的值而子数组内的元素不排序。划分时以最后一个元素为枢轴元素从左到右依次访问数组的每一个元素判断其与枢轴元素的大小关系并进行元素的交换如图2-30所示。 在[问题1]所给出的伪代码中当for循环结束后A[p..i]中的值应小于等于枢轴元素值x而A[i+1..r-1]中的值应大于枢轴元素值x。此时A[i+1]是第一个比A[r]大的元素因此A[r]与A[i+1]进行交换得到划分后的两个子数组。PARTITION操作返回枢轴元素的位置因此返回值为i+l。
这是一道考查快速排序算法伪代码的分析题。快速排序是对冒泡排序的一种改进,其基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序最核心的处理是进行划分,即PARTITION操作:根据枢轴元素的值,把一个较大的数组分成两个较小的子数组,一个子数组的所有元素的值小于等于枢轴元素的值,一个子数组的所有元素的值大于枢轴元素的值,而子数组内的元素不排序。划分时,以最后一个元素为枢轴元素,从左到右依次访问数组的每一个元素,判断其与枢轴元素的大小关系,并进行元素的交换,如图2-30所示。 在[问题1]所给出的伪代码中,当for循环结束后,A[p..i]中的值应小于等于枢轴元素值x,而A[i+1..r-1]中的值应大于枢轴元素值x。此时A[i+1]是第一个比A[r]大的元素,因此A[r]与A[i+1]进行交换,得到划分后的两个子数组。PARTITION操作返回枢轴元素的位置,因此返回值为i+l。

第6题:

从1000个元素中选出其中五个最大值元素()排序最适合。

:A冒泡

B快速排序

C堆排序

D选择排序


参考答案:C

第7题:

读下面的流程图,其最后结果是(7)。

A.将X,Y,z按从大到小的顺序排序

B.将X,Y,z按从小到大的顺序排序

C.将X,Y,Z中的最大值赋给W

D.将X,Y,Z中的最小值赋给W


正确答案:C
解析:当X>Y且X>=Z时,W=X;当XY且Y>=Z时,W=Y;当XYZ时,W=Z。即将x,Y,Z中的最大值赋给w。

第8题:

阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。

【说明】

下面一段程序从给定的数组b中找出值最小的元素,并输出该元素的数组下标、内存地址minaddr以及元素值本身。函数findmin负责在给定的数组中查找最小值,并返回最小值所在的内存地址,函数有三个参数:array是所要处理的数组;size是数组的大小;index负责从函数返回具有最大值的元素在数组中的数组下标。请填充空白,使其成为一个合乎要求的完整程序。

【程序】

//程序开始

include<iostream.h>

int *findmin(int *array, int size, int &index);

void main()

{

/****** 变量定义部分 ***********/

int b[10] = {34, 34, 23, 89, 1, 2, 13, 42, 5, 54};

(1);

int idx;

/******* 寻找最小值 ************/

minaddr = findmin(b, sizeof(b)/sizeof(int), idx);

/******* 输出最小值的有关信息 ************/

cout << "Min value index: "<<idx<<end1

<<"Min value address: "<<minaddr<<end1

<<"Min value: "<<(2)<<end1;

}

/******* 函数findmin的定义部分 ************

int *findmin(int *array, int size, int &index)

{

int min = 0;//max 是当前具有最小值的数组元素下标值

for(int i = 1;(3); i++)

{

if(array[i]<(4))

min = i;

}

(5);

return array + min;//返回最小值所在内存地址

}


正确答案:(1)int *minaddr (2) b[idx] (3)isize (4) array[min] (5) index = min
(1)int *minaddr (2) b[idx] (3)isize (4) array[min] (5) index = min

第9题:

补充程序Ccon042.C,使程序中的sort()函数用冒泡法对数组a中的m个元素从大到小排序


for(i=0;i</**/m-1/**/;i++)
if/**/(a[j]<a[j+1])/**/
a[j]=/**/a[j+1]/**/;

第10题:

类 myArray定义如下:

public class myArray

{

static int[] a = {21,42,16,31,23,47,35};

public void sortArray() //对数组从小到大进行排序

{ …… }

public int getMax() //返回最大的数组元素

{ …… }

public int getMin() //返回最小的数组元素

{ …… }

public float getAverage() //返回所有数组元素的平均值

{ …… }

public static void main(String[] args)

{ myArray myarray = new myArray();

myarray.sortArray();

System.out.println(myarray.getMax());

System.out.println(myarray.getMin());

System.out.println(myarray.getAverage());

}

在 main 方法中实现了数组元素最大值、最小值和平均值的输出。请编程实现 sortArray()、 getMax()、 getMin()、

getAverage()四个方法。

提示:排序完成以后,最大值即为最后一个数组元素,最小值为第一个数组元素。

请在 jsp 网页中利用脚本计算1*2*3*……*10 的值并输出。


正确答案:
  

更多相关问题