選擇排序和堆排序

2021-08-03 07:21:07 字數 964 閱讀 7262

選擇排序(selection sort)是一種簡單直觀的排序演算法。它的工作原理是每一次從待排序的資料元素中選出最小(或最大)的乙個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。 選擇排序是不穩定的排序方法,選擇排序是一種時間複雜度為o(n^2)的演算法

堆排序

首先將堆建好之後,在讓最後乙個數和第乙個數交換,交換之後,把之前最後乙個數不在當作陣列中的數,將第乙個數到最後乙個數的前乙個數進行向下調整演算法。直到調整到最後乙個數變為第乙個數的時候不再需要調整,堆排序的公升序也已經排列好了。

void adjustdown(int

*arr, int root,int n)

if (arr[child] > arr[parent])

parent = child;

child = parent * 2 + 1;

}}void heapsort(int

*arr, int n)

int end = n - 1;

while (end > 0)

}

選擇排序(選擇排序和堆排序)

選擇排序 從序列中依次選出最小值 或者最大值 放在一側。這樣的排序叫選擇排序。這裡我們對選擇排序進行優化,一次就選出當前序列的最大值和最小值。分別放在最右端和最左端。然後left right 使得序列範圍縮小,再進行選擇最大和最小值。void selectsort int a,int n 3選擇排序...

選擇排序 選擇排序和堆排序

選擇排序 基本思想 每一趟 第i趟,i 0,1,n 2 在後面n i個待排序的資料元素集合中選出關鍵碼最小的資料元素,作為有序元素序列的第i個元素。待到第n 2趟做完,待排序元素集合中只剩下1 個元素,排序結束。一 選擇排序 每一次在一組數中選最大的放到最後,然後再在剩餘的數中選次大的數放到倒數第二...

選擇排序 (選擇排序和堆排序)

原理 每一次從無序區間選出最大 或最小 的乙個元素,存放在無序區間的最後 或最前 直到全部待排序的資料元素排完 穩定性 不穩定 1.乙個穩定的排序可以變成不穩定的排序 2.乙個本身就不穩定的是不可能變成穩定的 空間複雜度 o 1 時間複雜度 o o n 2 public static void se...