C語(yǔ)言基本排序算法之插入排序與直接選擇排序?qū)崿F(xiàn)方法
本文實(shí)例講述了C語(yǔ)言基本排序算法之插入排序與直接選擇排序?qū)崿F(xiàn)方法。分享給大家供大家參考,具體如下:
聲明待排序元素類型
/*-------------------------- typedef.h 方便修改待排序元素類型 -------------------------------------*/ #ifndef TYPEDEF_H #define TYPEDEF_H typedef int T; #endif
插入排序:
/*---------------------------------------------------------------------------------------
Insertion_sort.h
直接插入排序
對(duì)以數(shù)組形式給出的元素排序
時(shí)間復(fù)雜度為(逆序數(shù))N(N-1)/4 = O(N^2),并且在最壞情形下達(dá)到這個(gè)值
最好情形下運(yùn)行N次,最壞情形下運(yù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
直接選擇排序
時(shí)間復(fù)雜度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
希望本文所述對(duì)大家C語(yǔ)言程序設(shè)計(jì)有所幫助。
相關(guān)文章
VS2019+MPI配置過(guò)程的實(shí)現(xiàn)步驟
本文介紹了在VS2019上配置MPI,包括下載和安裝MPI、創(chuàng)建項(xiàng)目、配置屬性、導(dǎo)入頭文件和庫(kù)文件、添加依賴項(xiàng)等步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2024-12-12
C++類的靜態(tài)成員變量與靜態(tài)成員函數(shù)詳解
下面小編就為大家?guī)?lái)一篇C++類的靜態(tài)成員變量與靜態(tài)成員函數(shù)的文章。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2021-11-11
使用?Visual?Studio?2022?開(kāi)發(fā)?Linux?C++?應(yīng)用程序的過(guò)程詳解
Visual?Studio?2022?引入了用于?Linux?C++?開(kāi)發(fā)的本機(jī)?WSL2?工具集,可以構(gòu)建和調(diào)試?Linux?C++?代碼,并提供了非常好的?Linux?文件系統(tǒng)性能、GUI?支持和完整的系統(tǒng)調(diào)用兼容性,這篇文章主要介紹了使用Visual?Studio?2022?開(kāi)發(fā)?Linux?C++?應(yīng)用程序,需要的朋友可以參考下2021-11-11
C++設(shè)計(jì)模式之Static Factory模式詳解
這篇文章主要為大家詳細(xì)介紹了C++設(shè)計(jì)模式之Static Factory模式的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
原碼, 反碼與補(bǔ)碼基礎(chǔ)知識(shí)詳細(xì)介紹
這篇文章講解了計(jì)算機(jī)的原碼, 反碼和補(bǔ)碼. 并且進(jìn)行了深入探求了為何要使用反碼和補(bǔ)碼, 以及更進(jìn)一步的論證了為何可以用反碼, 補(bǔ)碼的加法計(jì)算原碼的減法,需要的朋友可以參考下2016-12-12
C++ STL標(biāo)準(zhǔn)庫(kù)std::vector的使用詳解
vector 是表示可以改變大小的數(shù)組的序列容器,本文主要介紹了C++ STL標(biāo)準(zhǔn)庫(kù)std::vector的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03

