C語言基本排序算法之插入排序與直接選擇排序?qū)崿F(xiàn)方法
更新時間:2017年09月25日 09:00:10 作者:liyuxia713
這篇文章主要介紹了C語言基本排序算法之插入排序與直接選擇排序?qū)崿F(xiàn)方法,結(jié)合具體實例形式分析了插入排序與直接選擇排序的定義、使用方法及相關(guān)注意事項,需要的朋友可以參考下
本文實例講述了C語言基本排序算法之插入排序與直接選擇排序?qū)崿F(xiàn)方法。分享給大家供大家參考,具體如下:
聲明待排序元素類型
/*-------------------------- typedef.h 方便修改待排序元素類型 -------------------------------------*/ #ifndef TYPEDEF_H #define TYPEDEF_H typedef int T; #endif
插入排序:
/*--------------------------------------------------------------------------------------- Insertion_sort.h 直接插入排序 對以數(shù)組形式給出的元素排序 時間復雜度為(逆序數(shù))N(N-1)/4 = O(N^2),并且在最壞情形下達到這個值 最好情形下運行N次,最壞情形下運行2+3+…+N ------------------------------------------------------------------------------------------------*/ #ifndef INSERTION_SORT_H #define INSERTION_SORT_H #include "typedef.h" //直接插入排序 void Insertion_sort(T *a, int n) { for(int i = 1; i != n; ++i) { T temp = a[i]; int j = i - 1; for(; j >= 0 && temp < a[j]; --j ) a[j + 1] = a[j]; a[j + 1] = temp; } } #endif
直接選擇排序:
/*---------------------------------------------- DirectSelection_sort.h 直接選擇排序 時間復雜度O(N^2) --------------------------------------------------------*/ #ifndef DIRECTSELECTION_SORT_H #define DIRECTSELECTION_SORT_H #include "typedef.h" #include "swap.h" //直接選擇法排序 void DirectSelection_sort(T*a, int n) { for(int i = 0; i != n; ++i) { int k = i; for(int j = i; j != n; ++j) if(a[j] < a[k]) k = j; swap(a[k],a[i]); } } #endif
希望本文所述對大家C語言程序設(shè)計有所幫助。
相關(guān)文章
一步步從底層入手搞定C++引用與內(nèi)聯(lián)函數(shù)
內(nèi)聯(lián)函數(shù)是代碼插入到調(diào)用者代碼處的函數(shù),內(nèi)聯(lián)函數(shù)通過避免被調(diào)用的開銷來提高執(zhí)行效率,下面這篇文章主要給大家介紹了關(guān)于如何從底層入手搞定C++引用與內(nèi)聯(lián)函數(shù)的相關(guān)資料,需要的朋友可以參考下2023-03-03C++ 網(wǎng)絡(luò)連通性檢測的實現(xiàn)方法
這篇文章主要介紹了C++ 網(wǎng)絡(luò)連通性檢測的實現(xiàn)方法的相關(guān)資料,這里提供實例幫助大家實現(xiàn)這樣的功能,需要的朋友可以參考下2017-09-09