直插排序(C语言实现)
来源:互联网 发布:37诸神黄昏进阶数据 编辑:程序博客网 时间:2024/05/21 17:03
算法思想
从数组第1位开始遍历(数组下标从0开始,设排序为升序排列),备份 当前下标的值,遍历该下标之前的元素,若该元素的值比备份下标的值大,则该元素向后移动一位,接着判断前一个元素;若该元素的值比备份下标的值小,则该元素不做处理。代码实现如下:
//升序直插排序#include <stdio.h>#include <malloc.h>void insert_sort(int *a, int len);int main(void){ int i; int len; int * a; printf("请输入要排序的元素的个数:"); scanf("%d",&len);//存储要排的数的个数 a = (int *)malloc(len * sizeof(int));//动态定义内存 printf("请输入要排的数:\n"); for (i = 0; i < len; i++) { //要排的数的输入 scanf("%d",&a[i]); } insert_sort(a, len); printf("升序排列结果为:\n"); for (i = 0; i < len; i++) { //排序后结果的输出 printf("%d\t",a[i]); } return 0;}void insert_sort(int *a, int len){ int i; int j; int temp; for (i = 1; i < len; i++) { temp = a[i]; //备份当前下标的值 j = i - 1; while (j >= 0 && a[j] > temp) { //在数组内且值大于当前下标的值 a[j + 1] = a[j]; //该元素向后移动一位 j--; // } a[j+1] = temp; //插入该元素 }}
阅读全文
0 0
- 直插排序(C语言实现)
- 哈希+直插排序
- 直插排序
- 直插排序
- 算法--直插排序
- C语言插排序法
- 单链表的头插、中插、尾插、删除、逆序、显示(C语言实现)
- C语言排序(冒泡,选择,快排,插排)
- 白话算法之直插排序
- 直插,折半,二路,希尔排序
- 插入类排序:直插,折半插,希尔
- 【笔试】Java实现常用的排序算法:直插、冒泡和快排
- 快速排序的插排随机主元三数取中优化C语言实现
- 简单排序算法的汇总(快速排序、直插排序、希尔排序、选择排序、冒泡排序)
- 排序(C语言实现)
- 数据结构之插入排序(直插,折半插,2路插)—参考整理严蔚敏数据结构
- C语言:单链表的实现(包括:尾插、尾删、头插、头删、指定位置插入、长度、打印)
- 【C语言】静态顺序表的实现(包括头插、头删、尾插、尾删、查找、删除指定位置)
- Error:代理服务器拒绝链接
- 修改Ubuntu的apt-get源为阿里源的方法
- 软件测试
- java 从hadoop hdfs读取文件 进行groupby并显示为条形图
- yii2中的checkboxList
- 直插排序(C语言实现)
- JavaScript中链式调用及惰性调用
- css放大图片特效
- SerialPort 类小结
- IOS端K线系列之K线-绘制蜡烛图
- 移动平台粒子系统的实现原理
- dubbo-架构
- eclipse noen 通过maven不能启动tomcat
- 2015蓝桥杯决赛 密文搜索(字符串)