读《算法导论》我来C语言实现(1)——插入排序
来源:互联网 发布:pensen是什么软件 编辑:程序博客网 时间:2024/06/05 05:05
最近在重新温习算法导论,书里面的算法一段时间不看就会忘记,于是我就想重新用C语言码出来,等以后自己再用复习或要用的时候,直接阅读代码,更加方便。
书上讲的第一个算法也是个人认为最简单的一个——插入排序,作者把插入排序比作打扑克牌时的摸排并排序,很形象,下面是插入排序的代码:
#include <stdio.h>void insert_sort(int a[], unsigned int n){unsigned int i, j;int temp;for (i = 1; i < n; i++){temp = a[i];j = i - 1;while (j >= 0 && a[j] > temp){a[j + 1] = a[j];j--;}a[j + 1] = temp;}}int main(){int array[] = {5, 10, 2, 3, 9, -1, 3};int i;insert_sort(array, sizeof(array) / sizeof(int));for (i = 0; i < sizeof(array) / sizeof(int); i++){printf("%d ", array[i]);}}
插入排序使用的是增量法,遍历数组a的第i项时,数组a的[0~i-1]项已经是有序的,在数组的前i-项中找到适合第i项的位置插入进去;i从头遍历到结尾,即实现了插入排序。
- 读《算法导论》我来C语言实现(1)——插入排序
- 读《算法导论》我来C语言实现(2)——合并排序
- 读《算法导论》我来C语言实现(4)——快速排序
- 读《算法导论》我来C语言实现(3)——堆排序和优先级队列
- 《算法导论》1、插入排序实现(C++)
- 算法导论 之 插入排序[C语言]
- 算法导论(Introduction to Algorithms)之算法入门(插入排序与合并排序C语言实现)
- 算法导论——关于快速排序的实现(c语言实现)
- 算法导论——JAVA实现“插入排序”算法
- 堆排序C语言实现 算法导论
- 算法导论C语言实现: 堆排序
- 算法导论C语言实现: 快速排序
- 算法导论C语言实现: 计数排序
- 【算法导论】归并排序,C语言实现
- 算法导论 堆排序 C语言实现
- 算法导论:堆排序递归实现 (c语言)
- 算法导论:堆排序非递归实现(c语言)
- 算法导论—插入排序及Matlab实现
- POJ1118 Lining up
- 单页面 多缓存
- android数据存储之SharedPreferences
- 字节序问题--大小端问题
- C++标准转换运算符dynamic_cast
- 读《算法导论》我来C语言实现(1)——插入排序
- 最小生成树
- Android实现垂直型的SeekBar
- 金融行业公司系列介绍(1)——深圳市赢时胜科技有限公司
- Microsoft PowerPoint无法执行语言识别
- PHP远程操纵WordPress的方法(流程剖析)
- 11 java 王少飞-Java语言的主要特性分析
- C语言指针基础
- Tomcat处理HTTP请求源码分析(上)