写快速排序可以用()方式实现。
第1题:
有1000个无序的整数,希望使用最快的方式找出前50个最大的,最佳的选择是()
A.冒泡排序
B.基数排序
C.堆排序
D.快速排序
第2题:
:A直接插入排序和希尔排序
B直接插入排序和冒泡排序
C希尔排序和快速排序
D冒泡排序和快速排序
第3题:
下列各组的排序方法中,最坏情况下比较次数相同的是()。
A.冒泡排序与快速排序
B.简单插入排序与希尔排序
C.堆排序与希尔排序
D.快速排序与希尔排序
第4题:
设有1000个无序的元素,希望用最快的方式挑选出其中前10个最大元素,效率最高的排序方法是( )。
A.堆排序
B.快速排序
C.基数排序
D.起泡排序
第5题:
有一个元素数很大的无序序列,现希望从中选出最大的5各元素,下列哪种方式效率最高? ( )
A.堆排序
B.快速排序
C.基数排序
D.起泡排序
第6题:
就排序算法所用的辅助空间而言,堆排序、快速排序、归并排序的关系是()。
A、堆排序<快速排序<归并排序
B、堆排序<归并排序<快速排序
C、堆排序>归并排序>快速排序
D、堆排序>快速排序>归并排序
第7题:
A.快速排序在所有排序方法中最快,而且所需辅助空间最少
B.在快速排序中,不可以用队列替代栈
C.快速排序的空间复杂度为O(n))
D.快速排序在待排序的数据随机分布时效率最高
第8题:
● 在直接插入排序、冒泡排序、简单选择排序和快速排序方法中,能在第一趟排序结束后就得到最大(或最小)元素的排序方法是 (43) 。
(43)
A. 冒泡排序和快速排序
B. 直接插入排序和简单选择排序
C. 冒泡排序和简单选择排序
D. 直接插入排序和快速排序
第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.快速排序算法的实现