Java實現基本排序演算法

2021-06-14 03:25:07 字數 2069 閱讀 9676

/**

* *

* */public class sort

public static sort getinstance()

return sort; }

private void move(int array, int from, int end) }

/**

* 交換陣列中的兩個元素的位置

* @param array 待交換的陣列

* @param i 第乙個元素

* @param j 第二個元素

*/

private void swap(int array, int i, int j)

} public void display(int array)

system.out.println(); }

public void insertsort(int array) }}

} private void shellinsert(int array, int step)

array[j + step] = temp;}}

} public void shellsort(int array, int steps)

} /*

* 結束條件:在一趟排序過程中沒有進行過交換記錄的操作。

* **/

public void bubblesort(int array)

}display(array);

if (!hasswap)

}}

/** 交換陣列中[low, high]的記錄,樞軸記錄到位,並返回其所在的位置。

* 此時,在它之前(後)的記錄均不大(小)於它。

* **/

private int partition(int array, int low, int high)

array[low] = array[high];

while (low < high && array[low] <= temp)

array[high] = array[low];

}array[low] = temp;

return low;

} private void qsort(int array, int low, int high)

} public void quicksort(int array)

public void selectsort(int array) }}

} /*

* n個元素的序列當且僅當滿足下面關係時,稱之為堆。

* * ki <= k2i 且 ki <= k2i + 1

* * 或

* * ki >= 2i 且 ki >= k2i + 1

* * 可以將陣列看成乙個完全二叉樹。

* * **/

private void heapadjust(int array, int start, int end)

if(temp >= array[i])

array[start] = array[i];

start = i; // temp 應該插在start

}array[start] = temp;

} public void heapsort(int array)

system.out.println("大堆: ");

display(array);

for (int i = array.length - 1; i > 0; i--)

} }

public class main ;

// static int arraytest = ;

static int steps = ;

private static sort sort = null;

/*** @param args

*/public static void main(string args)

}

後續繼續更新。

基本排序演算法Java實現

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

基本排序演算法java實現

七種基於比較排序演算法記憶口訣 冒擇入希速歸堆 冒失選擇入口的希望是快速回歸馬王堆 氣泡排序 public class bubblesort 從右邊開始,每次迴圈最小值向左沉下去 選擇排序 public class selectionsort tmp arr i arr i arr k arr k ...

基本演算法 堆排序 Java實現

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