選擇排序(selection sort)是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小元素,然後放到排序序列末尾。以此類推,直到所有元素均排序完畢。
void selectionsort(int data, int count)
}
堆積排序
(heapsort)是指利用
堆積樹(
堆)這種資料結構所設計的一種排序演算法。
堆積樹是乙個近似
完全二叉樹
的結構,
並同時滿足
堆積屬性
:即子結點的鍵值或索引總是小於(或者大於)它的父節點。
通常堆積樹(heap)是通過一維陣列來實現的。在起始陣列為 0 的情形中:
注意:不使用位置 0,否則左子樹永遠為 0[2]
在堆積樹的資料結構中,堆積樹中的最大值總是位於根節點。堆積樹中定義以下幾種操作:
#include using namespace std;
//最大堆積調整(max_heapify):將堆積樹的末端子結點作調整,使得子結點永遠小於父結點
void max_heap(int array,int i,int length)
}//堆積排序(heapsort):移除位在第乙個資料的根結點,並做最大堆積調整的遞迴運算
void heapsort(int array,int length)
}int main()
; int array=;
int i;
int length=sizeof(array)/sizeof(int); //在這裡 sizeof(array)=80
heapsort(array,length);
for(i=0;icout
}
選擇排序(選擇排序和堆排序)
選擇排序 從序列中依次選出最小值 或者最大值 放在一側。這樣的排序叫選擇排序。這裡我們對選擇排序進行優化,一次就選出當前序列的最大值和最小值。分別放在最右端和最左端。然後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...