题目详情
当前位置:首页 > 计算机考试 > 中级软件设计师
题目详情:
发布时间:2024-01-24 05:19:13

[单项选择]快速排序算法采用的设计方法是()。
A. 动态规划法
B. 分治法
C. 回溯法
D. 分枝定界法

更多"快速排序算法采用的设计方法是()。"的相关试题:

[单项选择]快速排序算法采用的设计方法是()。
A. 动态规划法
B. 分治法
C. 回溯法
D. 分枝定界法
[单项选择]为实现快速排序算法,待排序列适合采用()。
A. 顺序存储
B. 链式存储
C. 散列存储
D. 索引存储
[单项选择]

以下关于快速排序算法的描述中,错误的是( 64)。在快速排序过程中,需要设立基准元素并划分序列来进行排序,若序列由元素 {12,25,30,45,52,67,85}构成,则初始排列为(65),排序效率最高(令序列的第一个元素为基准元素)。

(64)处填()。
A. 快速排序算法是不稳定的排序算法
B. 快速排序算法是最坏情况下的时间复杂度为 O(nlgn)
C. 快递排序算法是一种分治算法
D. 当输入数据基本有序时,快递排序算法具有最坏情况下的时间复杂度
[单项选择]

以下关于快速排序算法的描述中,错误的是 (64) 。在快速排序过程中,需要设立基准元素并划分序列来进行排序。若序列由元素{12,25,30,45,52,67,85}构成,则初始排列为 (65) 时,排序效率最高(令序列的第一个元素为基准元素)。

(64)处填()。
A. 快速排序算法是不稳定的排序算法
B. 快速排序算法在最坏情况下的时间复杂度为O(nlgn)
C. 快速排序算法是一种分治算法
D. 当输入数据基本有序时,快速排序算法具有最坏情况下的时间复杂度
[判断题]快速排序算法的时间复杂度与记录的初始排列无关。
[多项选择]【说明】下面是一个用C编写的快速排序算法。为了避免最坏情况,取基准记录pivot时,采用从left、right和mid=[(left+right)/2]中取中间值,并交换到right位置的办法。数组a存放待排序的一组记录,数据类型为T,left和right是待排序子区间的最左端点和最右端点。
void quicksort (int a[], int left, int right)
int temp;
if (left<right)
hat pivot = median3 (a, left, right); //三者取中子程序
int i = left, j = right-1;
for(;;)
while (i <j && a[i] < pivot) i++;
while (i <j && pivot < a[j]) j--;
if(i<j)
temp = a[i]; a[j] = a[i]; a[i] = temp;
i++; j--;

else break;

if (a[i] > pivot)
temp = a[i]; a[i] = a[right]; a[right] = temp;
quicksort( (1) ); //递归排序左子区间
quieksort(a,i+1 ,right); //递归排序右子区间
void median3 (int a[], int left, int right)
int mid= (2) ;
int k = left;
if(a[mid] < a[k])k = mid;
if(a[high] < a[k]) k = high; //选最小记录
int temp = a[k]; a[k] = a[left]; a[left] = temp; //最小者交换到 left
if(a[mid] <
[简答题][说明]
快速排序是一种典型的分治算法。采用快速排序对数组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.合并:快速排序在原地排序,故无需合并操作。
[问题2]
(1)假设要排序包含n个元素的数组,请给出在各种不同的划分情况下,快速排序的时间复杂度(用 O记号)。最佳情况为 (4) ,平均情况为 (5) ,最坏情况为 (6)
(2)假设要排序的n个元素都具有相同值时,快速排序的运行时间复杂度属于哪种情况 (7) 。 (最佳、平均、最坏)
[单项选择]堆排序、快速排序、归并排序就排序算法所用的辅助空间而言,从小到大的关系是______。
A. 堆排序、快速排序、归并排序
B. 堆排序、归并排序、快速排序
C. 快速排序、归并排序、堆排序
D. 归并排序、快速排序、堆排序
[单项选择]归并排序采用的算法设计方法属于()。
A. 归纳法
B. 分治法
C. 贪心法
D. 回溯方法
[单项选择]在直接插入排序、冒泡排序、简单选择排序和快速排序方法中,能在第一趟排序结束后就得到最大(或最小)元素的排序方法是()。
A. 冒泡排序和快速排序
B. 直接插入排序和简单选择排序
C. 冒泡排序和简单选择排序
D. 直接插入排序和快速排序
[简答题]下面是快速排序的递归算法。试在算法后的空白中填上正确的内容,将该算法补充完整使其完成预定功能。#define M 500typedef struct{int key;char info;}NODENODE r[M];quiksort(NODE r[],int low,int hig) { int i, j; NODE x; if(low>=hig) return; i=low; j=hig;x=r[i]; do { while((r[j].key>=x.key)&&(j>i)) (1) ; if(ii)) (2) ; if(i (3) ; }(1)_____________(2)_____________(3)_____________
[单项选择]最简单的交换排序方法是
A) 快速排序
B) 选择排序
C) 堆排序
D) 冒泡排序

[填空题]在基数排序、快速排列、堆排序、希尔排序中,排序方法稳定的是 ______。
[简答题]【说明】 函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。 【函数】 void QuickSort( int A[ ],int s,int t) { int i=s,j=t+1,temp; int x=A[s]; do{ do i ++ ;while (1) ; do j -- ;while(A[j]>x); if(i<j){temp=A[i]; (2) ; (3) ;} }while(i<j); A[a] =A[j];A[j] =x; if(s<i-1) (4) ; if(j+1<t) (5) ; }
[简答题]【说明】
函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。
【函数】
void QuickSort( int A[ ],int s,int t)
int i=s,j=t+1,temp;
int x=A[s];
do
do i ++ ;while (1) ;
do j -- ;while(A[j]>x);
if(i<j)temp=A[i]; (2) ; (3) ;
while(i<j);
A[a] =A[j];A[j] =x;
if(s<i-1) (4) ;
if(j+1<t) (5) ;

我来回答:

购买搜题卡查看答案
[会员特权] 开通VIP, 查看 全部题目答案
[会员特权] 享免全部广告特权
推荐91天
¥36.8
¥80元
31天
¥20.8
¥40元
365天
¥88.8
¥188元
请选择支付方式
  • 微信支付
  • 支付宝支付
点击支付即表示同意并接受了《购买须知》
立即支付 系统将自动为您注册账号
请使用微信扫码支付

订单号:

请不要关闭本页面,支付完成后请点击【支付完成】按钮
恭喜您,购买搜题卡成功
重要提示:请拍照或截图保存账号密码!
我要搜题网官网:https://www.woyaosouti.com
我已记住账号密码