C語言實現(xiàn)堆排序的簡單實例
更新時間:2014年07月04日 18:07:46 投稿:shichen2014
這篇文章主要介紹了C語言實現(xiàn)堆排序的簡單實例,講述了堆排序的原理,需要的朋友可以參考下
本文通過一個C語言實現(xiàn)堆排序的簡單實例,幫助大家拋開復雜的概念,更好的理解堆排序。
實例代碼如下:
void FindMaxInHeap(int arr[], const int size) { for (int j = size - 1; j > 0; --j) { int parent = j / 2; int child = j; if (j < size - 1 && arr[j] < arr[j+1]) { ++child; } if (arr[child] > arr[parent]) { int tmp = arr[child]; arr[child] = arr[parent]; arr[parent] = tmp; } } } void HeapSort(int arr[], const int size) { for (int j = size; j > 0; --j) { FindMaxInHeap(arr, j); int tmp = arr[0]; arr[0] = arr[j - 1]; arr[j - 1] = tmp; } } int main() { int arr[] = {2, 5, 3, 12, 6, 21, 8, 1}; int n = sizeof(arr) / sizeof(arr[0]); HeapSort(arr, n); for (int j = 0; j < n; ++j) { printf("%3d",arr[j]); } printf("\n"); return 0; }
相關文章
Opencv基于CamShift算法實現(xiàn)目標跟蹤
這篇文章主要為大家詳細介紹了Opencv基于CamShift算法實現(xiàn)目標跟蹤,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01基于對話框程序中讓對話框捕獲WM_KEYDOWN消息的實現(xiàn)方法
下面我們將通過程序給大家演示基于對話框的應用程序對WM_KEYDOWN消息的捕獲。需要的朋友可以參考下2013-05-05C++中memcpy函數(shù)的使用以及模擬實現(xiàn)
memcpy是c和c++使用的內(nèi)存拷貝函數(shù),本文主要介紹了C++中memcpy函數(shù)的使用以及模擬實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07用C/C++實現(xiàn)linux下檢測網(wǎng)絡接口狀態(tài)
這篇文章主要為大家詳細介紹了用c/c++實現(xiàn)linux下檢測網(wǎng)絡接口狀態(tài),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06VS2019調(diào)試C語言程序(監(jiān)視操作)的詳細步驟
在很多時候我們在寫程序的過程中會發(fā)現(xiàn)一些非編程錯誤的問題,這樣的問題很難直接分辨出來,但是我們可以用調(diào)試了一步一步的模擬程序運行的過程,來找出程序的錯誤,下面這篇文章主要給大家介紹了關于VS2019調(diào)試C語言程序(監(jiān)視操作)的詳細步驟,需要的朋友可以參考下2022-11-11