- Java的五大排序算法 推薦度:
- 相關(guān)推薦
Java排序算法
java操作中常見(jiàn)的排序方法有:冒泡排序、快速排序、選擇排序、插入排序、希爾排序,甚至還有基數(shù)排序、雞尾酒排序、桶排序、鴿巢排序、歸并排序等。下面是小編為大家搜索整理的Java排序算法,希望大家能有所收獲,更多精彩內(nèi)容請(qǐng)及時(shí)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!
1,冒泡法
public class BubbleSortImpl1 {
public static void BubbleSort(int A[]) {
int n = A.length;
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;//直接調(diào)用Swap會(huì)出錯(cuò)。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 < A.length; i++) {
System.out.println(A[i]);
}
}
}
2,堆排序
public class HeapSort {
static void HeapAdjust(int H[],int s,int n){//使H[s...m]稱為一個(gè)大頂堆
int rc=H[s];
int j;
for(j=2*s;j<=n;j=j*2){
if(j
++j;//j為父節(jié)點(diǎn)的最大孩子
if(rc>=H[j])
break;//rc應(yīng)該摻入在j的父位置上
H[s]=H[j];//j上移
s=j;
}
H[s]=rc;
}
static void Heap_Sort(int H[]){
int n=H.length;
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;//將堆頂記錄和 當(dāng)前未經(jīng)排序子序列中最后一個(gè)記錄交換。
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
System.out.print(A[i]);
}
}
3,插入排序
public class InsertSortImpl {
/**
* @param args
*/
public static void InsertSort(int A[]) {
int n = A.length;
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) {// 對(duì)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 < A.length; i++) {
System.out.println(A[i]);
}
}
}
【Java排序算法】相關(guān)文章:
Java常用的五大排序算法09-09
PHP快速排序算法解析10-09
PHP排序算法類講解07-18
java的常見(jiàn)排序方法08-31
C語(yǔ)言中使用快速排序算法對(duì)元素排序的實(shí)例06-20
教你JAVA語(yǔ)言快速排序的原理10-04
java通用組合算法如何實(shí)現(xiàn)09-12
java中全排列是如何生成算法09-05