写快速排序可以用()方式实现。

题目

写快速排序可以用()方式实现。

  • A、插入
  • B、递归
  • C、选择
  • D、都不对
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有1000个无序的整数,希望使用最快的方式找出前50个最大的,最佳的选择是()

A.冒泡排序

B.基数排序

C.堆排序

D.快速排序


正确答案:D

第2题:

以下排序方法中,稳定的排序方法是()。

:A直接插入排序和希尔排序

B直接插入排序和冒泡排序

C希尔排序和快速排序

D冒泡排序和快速排序


参考答案:B

第3题:

下列各组的排序方法中,最坏情况下比较次数相同的是()。

A.冒泡排序与快速排序

B.简单插入排序与希尔排序

C.堆排序与希尔排序

D.快速排序与希尔排序


正确答案:A

第4题:

设有1000个无序的元素,希望用最快的方式挑选出其中前10个最大元素,效率最高的排序方法是( )。

A.堆排序

B.快速排序

C.基数排序

D.起泡排序


正确答案:A

第5题:

有一个元素数很大的无序序列,现希望从中选出最大的5各元素,下列哪种方式效率最高? ( )

A.堆排序

B.快速排序

C.基数排序

D.起泡排序


正确答案:A
解析:对于一个待排序序列的键值,首先将其按堆定义建立一个堆,若采用根结点值大于左右孩子结点值的方法,首先就找到最大的键值,然后在剩下的键值中继续建堆的过程,就又找到次大的键值,如此反复,直到找到最小键值就完成了建堆的过程。

第6题:

就排序算法所用的辅助空间而言,堆排序、快速排序、归并排序的关系是()。A、堆排序<快速排序&l

就排序算法所用的辅助空间而言,堆排序、快速排序、归并排序的关系是()。

A、堆排序<快速排序<归并排序

B、堆排序<归并排序<快速排序

C、堆排序>归并排序>快速排序

D、堆排序>快速排序>归并排序


参考答案:A

第7题:

以下关于快速排序的叙述正确的是()

A.快速排序在所有排序方法中最快,而且所需辅助空间最少

B.在快速排序中,不可以用队列替代栈

C.快速排序的空间复杂度为O(n))

D.快速排序在待排序的数据随机分布时效率最高


参考答案:D

第8题:

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

(43)

A. 冒泡排序和快速排序

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

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

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


正确答案:C

第9题:

排序都有哪几种方法?请列举。用JAVA实现一个快速

排序。


正确答案:

 

本人只研究过冒泡排序、选择排序和快速排序,下面是快速排序的代码:

public class QuickSort {

/**

* 快速排序

* @param strDate

* @param left

* @param right

*/

public void quickSort(String[] strDate,int left,int right){

String middle,tempDate;

int i,j;

i=left;

j=right;

middle=strDate[(i+j)/2];

do{

while(strDate[i].compareTo(middle)<0&& i<right)

i++; //找出左边比中间值大的数

while(strDate[j].compareTo(middle)>0&& j>left)

j--; //找出右边比中间值小的数

if(i<=j){ //将左边大的数和右边小的数进行替换

tempDate=strDate[i];

strDate[i]=strDate[j];

strDate[j]=tempDate;

i++;

j--;

}

}while(i<=j); //当两者交错时停止

if(i<right){

quickSort(strDate,i,right);//从

}

if(j>left){

quickSort(strDate,left,j);

}

}

/**

* @param args

*/

public static void main(String[] args){

String[] strVoid=new String[]{"11","66","22","0","55","22","0","32"};

QuickSort sort=new QuickSort();

sort.quickSort(strVoid,0,strVoid.length-1);

for(int i=0;i<strVoid.length;i++){

System.out.println(strVoid[i]+" ");

}

}

}

7、有数组a[n],用java 代码将数组元素顺序颠倒

package cn.itcast.lecture2;

import java.util.Arrays;

import java.util.Collections;

public class ReverseTest {

public static void main(String [] args)

{

//产生若干0到1000的随机数,作为数组的初始值

int data[] = new int[]{

(int)(Math.random() * 1000),

(int)(Math.random() * 1000),

(int)(Math.random() * 1000),

(int)(Math.random() * 1000),

(int)(Math.random() * 1000),

(int)(Math.random() * 1000),

(int)(Math.random() * 100),

};

System.out.println(Math.random());

System.out.print("交换前的数据:");

System.out.println(

Arrays.toString(data));

reverse(data);

System.out.print("交换后的数据:");

System.out.println(Arrays.toString(data));

}

//方法执行完后,参数data中的数据顺序即被颠倒

//实现思路是第1个和第n个交换,第2个和第n-1个交换,依次类推...

public static void reverse(int[] data)

{

int len = data.length;

for(int i=0;i<len/2;i++)

{

int temp = data[i];

data[i] = data[len-1-i];

data[len-1-i] = temp;

}

}

}

2.金额转换,阿拉伯数字的金额转换成中国传统的形式如:

(¥1011)->(一千零一拾一元整)输出。

public class RenMingBi {

/**

* @param args add by zxx ,Nov 29, 2008

*/

private static final char[] data = new char[]{

'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'

};

private static final char[] units = new char[]{

'元','拾','佰','仟','万','拾','佰','仟','亿'

};

public static void main(String[] args) {

// TODO Auto-generated method stub

System.out.println(

convert(135689123));

}

public static String convert(int money)

{

StringBuffer sbf = new StringBuffer();

int unit = 0;

while(money!=0)

{

sbf.insert(0,units[unit++]);

int number = money%10;

sbf.insert(0, data[number]);

money /= 10;

}

return sbf.toString();

}

}

第10题:

栈结构不适用于下列________应用。

A.表达式求值

B.冒泡排序法的实现

C.二叉树对称序周游算法的实现

D.快速排序算法的实现


正确答案:B
解析:栈是一种特殊的线性表,限定仅在表的一端进行插入和删除运算的线性表,这一端称为栈顶(top),另一端则称为栈底(bottom)。表中无元素时称为空栈;最后进入栈顶的数据元素称为栈顶元素,新元素进栈要置于栈顶之上,删除或退栈必须先对栈顶进行。因此栈就形成了“后进先出” (LIFO)的操作原则。栈是使用最广泛的数据结构之一,表达式求值、递归过程实现都是栈应用的典型例子,二叉树周游具有后进先出的特性,即最先进入的左子树的周游最后完成,最后进入的左子树的周游最先完成,与栈的后进先出特性相符合。快速排序是在待排序序列中任取一个记录,以它为基准用交换的方法将所有的记录分成两部分,关键码值比它小的一个部分,关键码值比它大的在另一个部分,再分别对两个部分实施上述过程,一直重复到排序完成, 因此快速排序也是一个递归的过程,可以递归调用的算法来实现,属于栈的应用之一。所以A、C、D选项是适用的。

更多相关问题