基本排序演算法java實現

2021-07-04 15:30:49 字數 2054 閱讀 6528

七種基於比較排序演算法記憶口訣:

冒擇入希速歸堆(冒失選擇入口的希望是快速回歸馬王堆

氣泡排序:

public class bubblesort                //從右邊開始,每次迴圈最小值向左沉下去}}

}}選擇排序:

public class selectionsort   

}tmp = arr[i];

arr[i] = arr[k];

arr[k] = tmp;

}      //右邊未排序比左邊已排序的最大值要大}}

插入排序:

public class insertsort

arr[j] = tmp;

}     //拿未排序的第乙個數值跟已排序的從右往左比較,找到比其小的位置插入

}希爾排序(插入排序改進版):

public class shellsort

while(h > 0)

arr[j] = tmp;

}//減小間隔

h = (h - 1) / 3;}}

}快速排序(氣泡排序改進版):

public class quicksort else

}//將關鍵字和當前leftptr所指的這乙個進行交換

long tmp = arr[leftptr];

arr[leftptr] =  arr[right];

arr[right] = tmp;

return leftptr;

}public static void sort(long arr, int left, int right) else }}

歸併排序:

public class mergesort   

return nums;  

}  public static void merge(int nums, int low, int mid, int high)  else   

}  // 把左邊剩餘的數移入陣列  

while (i <= mid)   

// 把右邊邊剩餘的數移入陣列  

while (j <= high)   

// 把新陣列中的數覆蓋nums陣列  

for (int k2 = 0; k2 

}  }  

堆排序:

public class  heap

else

}public void snp(int arrays)else

}else if(arrays[i]

基於非比較排序演算法:計數排序,桶排序,基數排序

計數排序:

時間複雜度o(n)

publicclasscountsort

for(inti =1; i < count.length; i++)

intsortarr =newint[a.length];

for(inti =0; i < sortarr.length; i++)

returnsortarr;

}

}

Java實現基本排序演算法

public class sort public static sort getinstance return sort private void move int array,int from,int end 交換陣列中的兩個元素的位置 param array 待交換的陣列 param i 第乙個...

基本排序演算法Java實現

1 氣泡排序 氣泡排序 bubble sort,台灣另外一種譯名為 泡沫排序 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由...

基本演算法 堆排序 Java實現

堆排序就是將序列調整為指定的堆,然後調整首尾元素的位置,取出末尾元素,反覆進行,直到將所有元素取出,形成乙個有序的序列。假設存在 個元素的序列 其中父節點值不大於子節點值的堆稱為小根堆 r i r2 i 1且 ri r 2i 2 父節點的值不小於子節點的堆稱為大根堆 r i r2 i 1且 存在乙個...