第1题:
排序都有哪几种方法?请列举。用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();
}
}
第2题:
若要求对大小为n的数组进行排序的时间复杂度为O(nlog2n),且是稳定的(即如果待排序的序列中两个数据元素具有相同的值,在排序前后它们的相对位置不变),则可选择的排序方法是( )。
A.快速排序 B.归并排序 C.堆排序 D.冒泡排序
第3题:
A.快速排序
B.堆排序
C.归并排序
D.直接插入排序
第4题:
在Array类中,可以对一维数组中的元素进行排序的方法是()。
第5题:
第6题:
A.add( )
B.join( )
C.sort( )
D.length( )
第7题:
此题为判断题(对,错)。
第8题:
A、Arrays类用于对数组进行排序和搜索的类
B、Arrays类提供了sort()和binarySearch()的方法
C、Arrays类是自定义的可以实现排序和查找的操作类
D、Arrays类定义在java.util包中
第9题:
在Array类中,可以对一维数组中的元素进行排序的方法是()。
第10题:
在JavaScript中Array对象拥有的方法不包括()。