當前位置:才華齋>計算機>java語言>

Java排序演算法

java語言 閱讀(1.63W)

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]);

}

}

}