排序算法之插入排序<Insertion_Sort>及其C语言代码实现
来源:互联网 发布:360网络流量监控软件 编辑:程序博客网 时间:2024/06/07 22:57
概述
一个插入排序是另一种简单排序,它的思路是:每次从未排好的序列中选出一个元素插入到已排好的序列中。
它的算法步骤可以大致归纳如下:
1. 从未排好的序列中选出一个元素,并把它赋值给temp变量;
2. 从排好的序列中,依次与temp进行比较,如果元素比temp大,则将元素后移(实际上放置temp的元素位置已经空出)
3. 直到找到一个元素比temp小, 将temp放入该位置;
时间复杂度:o(n^2)
核心代码实现:
void Insertion_Sort(int a[],int n){ int i,j; for(i=1;i<n;i++) { int temp=a[i]; for(j=i;j>0&&a[j-1]>temp;--j) a[j]=a[j-1]; a[j]=temp; }}
具体样例:
#include <stdio.h>void Insertion_Sort(int a[],int n){ int i,j; for(i=1;i<n;i++) { int temp=a[i]; for(j=i;j>0&&a[j-1]>temp;--j) a[j]=a[j-1]; a[j]=temp; }}int main(){ int a[]={1,3,63,5,78,9,12,52,8}; int n=sizeof(a)/sizeof(int),i; Insertion_Sort(a,n); for(i=0;i<n;i++) printf("%d ",a[i]); return 0;}
运行结果:
0 0
- 排序算法之插入排序<Insertion_Sort>及其C语言代码实现
- 【算法】插入排序 insertion_sort
- 排序算法之冒泡排序<Bubble_Sort>及其C语言代码实现
- 排序算法之希尔排序<Shell_Sort>及其C语言代码实现
- 排序算法之选择排序<Selection_Sort>及其C语言代码实现
- 排序算法之堆排序<Heap_Sort>及其C语言代码实现
- 排序算法之归并排序<Merge_Sort>及其C语言代码实现
- 排序算法之快速排序<Quick_Sort>及其C语言代码实现
- 插入排序(insertion_sort)详解
- Insertion_Sort(插入排序)
- 插入排序 insertion_sort
- 插入排序(INSERTION_SORT)
- C语言排序算法实现之插入排序
- 排序算法之插入排序(C语言实现)
- 排序算法之插入排序 (C语言)
- C语言之排序算法---插入排序
- c语言排序算法之插入排序
- 算法代码实现之插入排序,Golang(Go语言)实现
- 10.29 NOIP模拟赛(afternoon)
- 学习心得
- 部署php到tomcat中
- C++多态实现机制
- 测试环境搭建之在CentOS 7上安装Nginx服务器
- 排序算法之插入排序<Insertion_Sort>及其C语言代码实现
- 内存溢出和内存泄漏
- android studio 调试技巧(简直太好用)
- USACO 2016 US Open【262144游戏】
- linux 文件解压命令总结
- 中序表达式转逆波兰表达式(你嫌弃波兰~抛弃疗窝喔~)个位数简化版
- 汇编语言 王爽(第三版) 实验4 [bx]和loop的使用
- 测试环境搭建之CentOS 7.0系统安装配置步骤详解
- 奇偶校验、CRC校验、海明码校验