简单排序
1.冒泡
//冒泡类的所有应用包装
public class ArrayBub {
private long [] a;
private int nElenms;
public ArrayBub(int max){
a=new long [max];
nElenms=0;//用来计数数组中的元素个数
}
public void insert(long value){
a[nElenms]=value;
nElenms++;
}
public void display(){
for(int j=0;j<nElenms;j++)
System.out.println(a[j]+" ");
}
public void bubbleSort(){
int out, in;
for(out=nElenms-1;out>1;out--)
for(in=0;in<out;in++)
if(a[in]>a[in+1])
swap(in,in+1);
}
private void swap(int one,int two){
long temp=a[one];
a[one]=a[two];
a[two]=temp;
}
}
//主类测试
import java.util.Random;
public class BubbleSortApp {
public static void main(String[] args) {
int maxsize=100;
ArrayBub arr;
arr=new ArrayBub(maxsize);
Random r=new Random();
for(int i=0;i<10;i++){
int temp=r.nextInt(100);
arr.insert(temp);
}
arr.display();
arr.bubbleSort();
System.out.println("排序后的顺序为:");
arr.display();
}
}
2.选择排序
public class ArraySe1 {
private long [] a;
private int nElems;
public ArraySe1(int max){
a=new long [max];
nElems++;
}
public void insert(long value){
a[nElems]=value;
nElems++;
}
public void display(){
for(int j=0;j<nElems;j++)
System.out.println(a[j]+" ");
}
public void selectionSort(){
int out ,in ,min;
for(out=0;out<nElems;out++){
min=out;
for(in=out+1;in<nElems;in++)
if(a[in]<a[min])
min=in;
swap(out,min);
}
}
private void swap(int one,int two){
long temp=a[one];
a[one]=a[two];
a[two]=temp;
}
}
import java.util.Random;
public class SelectSortApp {
public static void main(String[] args){
int maxsize=100;
ArraySe1 arr;
arr=new ArraySe1(maxsize);
Random r=new Random();
for(int i=0;i<10;i++){
long temp=r.nextInt(100);
arr.insert(temp);
}
arr.display();
arr.selectionSort();
System.out.println("排序后的顺序为:");
arr.display();
}
}
3.插入
public class ArrayIns {
private long[] a;
private int nElems;
public ArrayIns(int max){
a=new long [max];
nElems++;
}
public void insert(long value){
a[nElems]=value;
nElems++;
}
public void display(){
for(int j=0;j<nElems;j++)
System.out.println(a[j]+" ");
}
//**************************
public void insertionSort(){
int in,out;
for(out=1;out<nElems;out++){
long temp=a[out];
in=out;
while(in>0 && a[in-1]>=temp){
a[in]=a[in-1];
--in;
}
a[in]=temp;
}
}
}
import java.util.Random;
public class ArrayInsApp {
public static void main(String[] args) {
int maxsize = 100;
ArrayIns arr;
arr = new ArrayIns(maxsize);
Random r = new Random();
for (int i = 0; i < 10; i++) {
int temp = r.nextInt(100);
arr.insert(temp);
}
arr.display();
arr.insertionSort();
System.out.println("排序后的顺序为:");
arr.display();
}
}