算法分析之插入排序——动态数组实现
来源:互联网 发布:百度云用数据上传慢 编辑:程序博客网 时间:2024/06/05 18:39
插入排序,最简单的排序算法。本次采用动态数组实现。
1.申请动态数组空间
printf("输入数组的大小length:\n"); int length=0; scanf("%d",&length); /****动态分配内存初始化数组***********************/ int * array = (int*)malloc(length * sizeof(int));
申请长度为length的int型数组array。
2.插入排序算法实现
void insert_sort(int array[],int length){ int i,j,key; for(j=1;j<length;j++) { key = array[j]; i = j-1; while(i>=0 && array[i]>key) { array[i+1] = array[i]; i = i-1; } array[i+1] = key; print_array(array,length); }}
原数组如下图:
第一次循环时:
j=1;i=j-1=0;key=array[1]=2;
因此,2、5交换
第二次循环:
j=2;i=j-1=1;key=array[2]=4;
while循环 i>=0 && array[i]>key为真(i=1;5>4):
执行array[i+1] = array[i];i = i-1;(i=0)
此时数组为:
此时while循环为假,2<4,
所以执行array[i+1] = key;即array[1]=4;
此时数组为:
此处不一一列举每次循环的过程了。最后给出运行的截图:
1 0
- 算法分析之插入排序——动态数组实现
- Java数据结构与算法之数组排序——插入
- 排序算法—插入排序之直接插入排序
- 用python实现算法之——插入排序
- 排序算法—直接插入排序算法分析与实现(Python)
- 算法之排序——插入排序
- 算法——排序之插入排序
- 算法基础之排序—插入排序
- 算法之插入排序——直接插入排序
- 排序算法之Java实现3——直接插入排序算法
- 【排序算法】之插入排序的实现
- 排序算法之插入排序 Java实现
- 直接插入排序算法分析、代码实现
- 插入排序算法实现与分析
- 插入排序算法——Java实现
- 算法—插入排序(Java实现)
- 【算法之家】——插入排序
- 初级排序算法之冒泡、选择、插入、希尔排序(附Java实现和分析)
- POJ3254
- Oracle SQL 查询优化.Part3
- leetcode_102 Binary Tree Level Order Traversal
- 安装centos7图形界面
- 802.11协议
- 算法分析之插入排序——动态数组实现
- 网站选号的规则(我和小福的故事之二补一)
- 菱形的大小调节
- mac下虚拟机Ubuntu下配置PHP+Apache+MySQL服务器环境以及按照Laravel
- 关于基本控件EditText属性大全详解
- JavaScript语言精粹——正则
- Mark PCIE
- Visual Studio 不生成.vshost.exe和.pdb文件的方法
- 《剑指Offer》学习笔记——替换空格