Java排序算法

java操作中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。下面是小编为大家搜索整理的Java排序算法,希望大家能有所收获,更多精彩内容请及时关注我们应届毕业生考试网!

Java排序算法

  1,冒泡法

public class BubbleSortImpl1 {

public static void BubbleSort(int A[]) {

int n = th;

for(int i=0;i

for(int j=0;j

if(A[j]>A[j+1])

{

int temp=A[j];

A[j]=A[j+1];

A[j+1]=temp;//直接调用Swap会出错。why?

}

}

}

}

public static void swap(int a, int b) {

int temp = a;

a = b;

b = temp;

}

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

int A[] = new int[] { 2, 5, 3, 9, 7, 1, 30 };

BubbleSort(A);

for (int i = 0; i < th; i++) {

tln(A[i]);

}

}

}

  2,堆排序

public class HeapSort {

static void HeapAdjust(int H[],int s,int n){//使H[s...m]称为一个大顶堆

int rc=H[s];

int j;

for(j=2*s;j<=n;j=j*2){

if(j

++j;//j为父节点的`最大孩子

if(rc>=H[j])

break;//rc应该掺入在j的父位置上

H[s]=H[j];//j上移

s=j;

}

H[s]=rc;

}

static void Heap_Sort(int H[]){

int n=th;

for(int i=n/2;i>0;i--){

HeapAdjust(H,i,n);

}//

for(int k=n-1;k>1;k--){

int temp=H[1];

H[1]=H[k];

H[k]=temp;//将堆顶记录和 当前未经排序子序列中最后一个记录交换。

HeapAdjust(H,1,k-1);

}

}

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

int A[]={0,3,5,9,2,7};

Heap_Sort(A);

for(int i=0;i

t(A[i]);

}

}

  3,插入排序

public class InsertSortImpl {

/**

* @param args

*/

public static void InsertSort(int A[]) {

int n = th;

for (int i = 0; i < n-1; i++) {

int temp = A[i+1];

Insert(A, temp, i );

}

}

public static void Insert(int A[], int e, int k) {// 对A[1...k]排序

while(k>=0&&A[k]>e){

A[k+1]=A[k];

k--;

}

A[k+1]=e;

}

public static void main(String[] args) {

// TODO Auto-generated method stub

int A[] = new int[] { 2, 5, 3, 9, 7, 1, 30,6 };

InsertSort(A);

for (int i = 0; i < th; i++) {

tln(A[i]);

}

}

}