以整數排序介紹排序演算法

2022-02-06 02:16:40 字數 2211 閱讀 6433

package practice.ch07;

import source.ch07.recordnode;

/** * @author snail van

* */

public class sort

// 找到了插入位置,將其插入

arr[index] = temp;

} return arr;

} /** 2.希爾排序 */

public int shellsort(int d, int arr)

arr[j + dk] = temp;

}} return arr;

} /** 3.氣泡排序 */

public int bubblesort(int arr)

}} return arr;

} /** 4.快速排序 */

public int quicksort(int arr)

// 輔助方法: 遞迴呼叫

private int qsort(int arr, int low, int high)

return arr;

} // 輔助方法:一次快排

private int partition(int arr, int i, int j)

// 把arr[j]放到左邊i的位置,i++; j位置空出來了

if (i < j)

// 從左到右找到乙個比pivot大的arr[i]

while (i < j && pivot > arr[i])

// 把arr[i]放到左邊j的位置,j--; i位置空出來了

if (i < j)

} arr[i] = pivot; // 此時 i==j 將pivot賦給arr[i]

return i;

} /** 5.選擇排序 */

public int selectionsort(int arr)

}temp = arr[i];

arr[i] = arr[minindex];

arr[minindex] = temp;

} return arr;

} /** 6.堆排序 */

public int heapsort(int arr)

// 每趟將最小值交換到後面,再調整成堆

for (int i = len - 1; i > 0; i--)

return arr;

} // 輔助方法:調整堆

private void sift(int arr, int low, int high)

if (temp > arr[j]) else

} arr[i] = temp; }

/** 7. 歸併排序 */

public int mergesort(int arr)

return arr;

}private void mergepass(int arr, int order, int s, int n)

if (p + s - 1 < n - 1) else }}

private void merge(int arr, int order, int h, int m, int t) else

}while (i <= m)

while (j <= t)

}public void show(string s, int arr)

system.out.println();

} public static void main(string args) ;

sort s = new sort();

s.show("未排序前:", arr);

// s.show("插入排序:",s.insertionsort(arr));

// int d = ;

// s.show("希爾排序:", s.shellsort(d, arr));

// s.show("氣泡排序:", s.bubblesort(arr));

// s.show("快速排序:", s.quicksort(arr));

// s.show("選擇排序:", s.selectionsort(arr));

// s.show("堆排序:", s.heapsort(arr));

s.show("歸併排序:", s.mergesort(arr));

}}

排序演算法介紹

排序也稱排序演算法 sort algorithm 排序是將一組資料,依指定的順序進行排列的過程。1 內部排序 指將需要處理的所有資料都載入到內部儲存器 記憶體 中進行排序。2 外部排序法 資料量過大,無法全部載入到記憶體中,需要借助外部儲存 檔案等 進行排序。1 穩定 如果 a 原本在 b 前面,而...

排序演算法介紹

排序也成排序演算法 sort algorithm 排序是將一組資料,依指定的順序進行排列的過程。排序的分類 1內部排序 需要處理的所有資料都載入到內部儲存器中進行排序 2外部排序 資料量過大,無法全部載入到記憶體中,需要借助外部儲存進行排序 常見的排序演算法 時間頻度 乙個演算法中的語句執行次數稱為...

排序演算法 N個正整數排序

高德納在 計算機程式設計藝術 裡對演算法歸納為以下幾點 輸入 乙個演算法必須有零或以上的輸入量 輸出 乙個演算法應有乙個或以上的輸出量 明確性 演算法的描述必須無歧義,實際執行結果是確定的 有限性 必須在有限個步驟內結束 有效性 又稱可行性,能夠被執行者實現 如果想詳細研究演算法推薦 資料結構與演算...