C語言基本排序算法之插入排序與直接選擇排序?qū)崿F(xiàn)方法
更新時間:2017年09月25日 09:00:10 作者:liyuxia713
這篇文章主要介紹了C語言基本排序算法之插入排序與直接選擇排序?qū)崿F(xiàn)方法,結(jié)合具體實(shí)例形式分析了插入排序與直接選擇排序的定義、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
本文實(shí)例講述了C語言基本排序算法之插入排序與直接選擇排序?qū)崿F(xiàn)方法。分享給大家供大家參考,具體如下:
聲明待排序元素類型
/*-------------------------- typedef.h 方便修改待排序元素類型 -------------------------------------*/ #ifndef TYPEDEF_H #define TYPEDEF_H typedef int T; #endif
插入排序:
/*---------------------------------------------------------------------------------------
Insertion_sort.h
直接插入排序
對以數(shù)組形式給出的元素排序
時間復(fù)雜度為(逆序數(shù))N(N-1)/4 = O(N^2),并且在最壞情形下達(dá)到這個值
最好情形下運(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
直接選擇排序
時間復(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
希望本文所述對大家C語言程序設(shè)計(jì)有所幫助。
相關(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-03
C++ 重載與重寫的區(qū)別與實(shí)現(xiàn)
在面向?qū)ο笳Z言中,經(jīng)常提到重載與重寫,本文主要介紹了C++ 重載與重寫的區(qū)別與實(shí)現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-01-01
C語言結(jié)構(gòu)體(struct)的詳細(xì)講解
C語言中,結(jié)構(gòu)體類型屬于一種構(gòu)造類型(其他的構(gòu)造類型還有:數(shù)組類型,聯(lián)合類型),下面這篇文章主要給大家介紹了關(guān)于C語言結(jié)構(gòu)體(struct)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03
C++ 網(wǎng)絡(luò)連通性檢測的實(shí)現(xiàn)方法
這篇文章主要介紹了C++ 網(wǎng)絡(luò)連通性檢測的實(shí)現(xiàn)方法的相關(guān)資料,這里提供實(shí)例幫助大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-09-09

