用於梳子排序的 Java 程式
Java 中的梳子排序可消除位於列表末端較小的值,並逐個移除反轉。讓我們看一個例子 -
示例
import java.util.Arrays;
public class Demo{
void comb_sort(int nums[]){
int len_gap = nums.length;
float shrink_val = 1.3f;
boolean swap = false;
while (len_gap > 1 || swap) {
if (len_gap > 1) {
len_gap = (int)(len_gap / shrink_val);
}
swap = false;
for (int i = 0; len_gap + i < nums.length; i++){
if (nums[i] > nums[i + len_gap]) {
swap(nums, i, i + len_gap);
swap = true;
}
}
}
}
private static void swap(int nums[], int x, int y) {
Integer temp = nums[x];
nums[x] = nums[y];
nums[y] = temp;
}
public static void main(String args[]){
Demo ob = new Demo();
int nums[] = {6, 78, 90, -12, -45, 0, -1, 45};
System.out.println("The original array contains ");
System.out.println(Arrays.toString(nums));
ob.comb_sort(nums);
System.out.println("The sorted array is ");
System.out.println(Arrays.toString(nums));
}
}輸出
The original array contains [6, 78, 90, -12, -45, 0, -1, 45] The sorted array is [-45, -12, -1, 0, 6, 45, 78, 90]
一個名為 Demo 的類中包含有 ‘comb_sort’ 函式。在此,陣列的長度被定義,如果這個長度大於 1,將定義一個新的 ‘len_gap’,它等於陣列長度除以 1.3f。
對這個陣列進行迭代並將陣列中的元素進行比較,如果元素大於該元素加上一個指定的 ‘len_gap’,那麼這兩個元素將互換。之後,對這些元素執行一次簡單的氣泡排序。在主函式中,對陣列進行定義並定義一個 Demo 類的例項,然後在陣列上呼叫 ‘comb_sort’ 函式。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP