用泛型编写一个冒泡排序法(java语言)

RT... RT 展开
 我来答
幻影如诗
2013-04-13 · TA获得超过122个赞
知道答主
回答量:56
采纳率:0%
帮助的人:52.2万
展开全部
package com.xx.test;

public class BubbleSort<E> implements Comparable<E>{

public void bubbleSort(E[] array) {

// 声明一个变量用于交换两个元素时使用
E temp;

for(int i = 0; i < array.length - 1; i++) {
for(int j = 0; j < array.length - i - 1; j++) {
if(((Comparable<E>) array[j]).compareTo(array[j + 1]) < 0) {
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}

public int compareTo(E o) {
// 这里要实现比较两个对象的大小
return 0;
}
}
因为是泛型,所以需要根据实际情况来写一个compareTo方法来比较大小,例如传进来的是基本数据类型,那么就直接比较大小,如果传进来的是字符串,按字典顺序重写compareTo()方法,其他的类型又怎么比较就行了!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-13
展开全部
public class Test1 {
public static void main(String[] args) {
Integer[] elems = { 2, 3, 4, 5, 1 };
new BubbleSort<Integer>().sort(elems); }
} class BubbleSort<E extends Comparable<E>> { public void sort(E... elems) {
// TODO Auto-generated method stub
E temp;
int count = 1;
for (int k = 0; k < elems.length; k++) {
System.err.print(elems[k] + " ");
}
System.err.println();
System.err.println("---------------------");
for (int i = 0; i < elems.length; i++) {
for (int j = elems.length - 1; j > i; j--) {
if (elems[j].compareTo(elems[j - 1]) < 0) {
temp = elems[j - 1];
elems[j - 1] = elems[j];
elems[j] = temp;
}
System.err.print("count-" + count + ":");
for (int k = 0; k < elems.length; k++) {
System.err.print(elems[k] + " ");
}
System.err.println();
count++;
}
System.err.print("count-" + count + ":");
for (int k = 0; k < elems.length; k++) {
System.err.print(elems[k] + " ");
}
System.err.println();
count++;
}
System.err.println("---------------------");
for (int k = 0; k < elems.length; k++) {
System.err.print(elems[k] + " ");
}
System.err.println();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式