日期:2014-05-20 浏览次数:20880 次
import java.util.Random;
import java.util.Scanner;
class ArrayBubble<E>
{
private E[] a;
private int nElements;
public ArrayBubble(int max)
{
a = (E[])new Object[max];
nElements = 0;
}
public void insert(E value)
{
a[nElements++] = value;
}
public void display()
{
for (int j = 0;j < nElements; j++)
{
System.out.print(a[j] + " ");
}
System.out.println();
}
public E[] getArray()
{
return a;
}
}
class BubbleSort<E extends Comparable<E>>
{
public void sort(E[] a, int nElements)
{
for (int out = 0; out < nElements - 1; out++)
{
for (int in = 0; in < nElements - out - 1; in++)
{
if (a[in].compareTo(a[in + 1]) > 0)
{
E temp = a[in];
a[in] = a[in + 1];
a[in + 1] = temp;
}
}
}
}
}
public class BubbleSortApp
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
System.out.print("请输入数组大小: ");
int size = scanner.nextInt();
Random rnd = new Random();
ArrayBubble<Integer> myArray = new ArrayBubble<Integer>(size + 10);
for (int i = 0; i < size ;i++)
{
myArray.insert((Integer)rnd.nextInt(100));
}
System.out.println("原数组如下:");
myArray.display();
new BubbleSort<Integer>().sort(myArray.getArray(), size);
System.out.println("排序后的数组如下");
myArray.display();
}
}
public ArrayBubble(int max, Class<E> clazz) //加一个类型参数
{
//a = (E[])new Object[max];
a = (E[])Array.newInstance(clazz, max); //用反射的方式生成实例
nElements = 0;
}
//调用
ArrayBubble<Integer> myArray = new ArrayBubble<Integer>(size + 10, Integer.class);
------解决方案--------------------
import java.util.*;
class ArrayBubble<E>
{
private E[] a;
private int nElements;
//构造器改成这样
//构造器改成这样
//构造器改成这样
public ArrayBubble(E[] a)
{
this.a = a;
nElements = 0;
}
public void insert(E value)
{
a[nElements++] = value;
}
public void display()
{
for (int j = 0;j < nElements; j++)
{
System.out.print(a[j] + " ");
}
System.out.println();
}
public E[] getArray()
{
return a;
}
}
class BubbleSort<E extends Comparable<E>>
{
public void sort(E[] a, int nElements)
{
for (int out = 0; out < nElements - 1; out++)
{
for (int in = 0; in < nElements - out - 1; in++)
{
if (a[in].compareTo(a[in + 1]) > 0)
{
E temp = a[in];
a[in] = a[in + 1];
a[in + 1] = temp;
}
}
}
}
}
public class BubbleSortApp
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
System.out.print("请输入数组大小: ");
int size = scanner.nextInt();
Random rnd = new Random();
//下面一行改成这样
//下面一行改成这样
//下面一行改成这样
ArrayBubble<Integer> myArray = new ArrayBubble<>(new Integer[size+10]);
for (int i = 0; i < size ;i++)
{
myArray.insert((Integer)rnd.nextInt(100));
}
System.out.println("原数组如下:");
myArray.display();
new BubbleSort<Integer>().sort(myArray.getArray(), size);
System.out.println("排序后的数组如下");
myArray.display();
}
}