C语言基本排序算法之插入排序与直接选择排序实现方法
2017-09-25 09:00
681 查看
本文实例讲述了C语言基本排序算法之插入排序与直接选择排序实现方法。分享给大家供大家参考,具体如下:
声明待排序元素类型
/*-------------------------- typedef.h 方便修改待排序元素类型 -------------------------------------*/ #ifndef TYPEDEF_H #define TYPEDEF_H typedef int T; #endif
插入排序:
/*--------------------------------------------------------------------------------------- Insertion_sort.h 直接插入排序 对以数组形式给出的元素排序 时间复杂度为(逆序数)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语言程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- C语言实现基本排序算法----排序(直接插入排序,SHELL排序,冒泡排序,快速排序,简单选择排序,堆排序)
- 几种基本的排序算法(选择排序,冒泡排序,快速排序,归并排序,希尔排序)C语言实现
- C语言8种排序算法及其实现 1.希尔排序 2.二分插入法 3.直接插入法 4.带哨兵的直接排序法 5.冒泡排序 6.选择排序 7.快速排序 8.堆排序
- 菜鸟学编程之三:三种最基本排序算法的实现(冒泡排序、选择排序、直接插入排序)
- 基本排序算法(冒泡排序,选择排序,插入排序)后续[时间测试]
- 插入排序是基本排序算法中最好的一种,虽然插入排序也是需要O(N^2)时间,但它比冒泡排序快一倍,比选择排序还要快点。
- 面试最基本的三种排序算法 冒泡排序 插入排序 选择排序
- (排序)用C语言实现的直接插入排序
- (数据结构排序的实验四)快速,冒泡,简单选择,直接插入排序的c语言实现!!
- 算法导论之插入排序,选择排序,归并排序,冒泡排序,希尔排序,堆排序,快速排序的c语言实现
- 元素排序几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- Java 常用排序算法实现--快速排序、插入排序、选择、冒泡
- C语言实现 排序源程序(包括直接插入、希尔、冒泡、快速、简单选择、堆排序)
- 基本排序算法及分析(一):插入排序,直接选择排序
- 基本算法简单实现-二分法查找、合并排序、冒泡排序、插入排序、选择排序、快速排序
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- C#实现所有经典排序算法(选择排序,冒泡排序,快速排序,插入排序,希尔排序)
- 直接选择排序的C++实现及随机数组的产生方法
- Java 常用排序算法实现--快速排序、插入排序、选择、冒泡
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)