排序算法之插入排序
来源:互联网 发布:python编译器是什么 编辑:程序博客网 时间:2024/04/30 13:48
插入排序:插入即表示将一个新的数据插入到一个有序数组中,并继续保持有序。例如有一个长度为N的无序数组,进行N-1次的插入即能完成排序;第一次,数组第1个数认为是有序的数组,将数组第二个元素插入仅有1个有序的数组中;第二次,数组前两个元素组成有序的数组,将数组第三个元素插入由两个元素构成的有序数组中......第N-1次,数组前N-1个元素组成有序的数组,将数组的第N个元素插入由N-1个元素构成的有序数组中,则完成了整个插入排序。
插入排序的步骤大概为:
⒈ 从第一个元素开始,该元素可以认为已经被排序
⒉ 取出下一个元素,在已经排序的元素序列中从后向前扫描
⒊ 如果该元素(已排序)大于新元素,将该元素移到下一位置
⒋ 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
⒌ 将新元素插入到下一位置中
⒍ 重复步骤2~5
1
#include<stdio.h>
int main()
{
int array[] = {3, 7, 4 ,6, 1, 2, 5}; int count = 0; count = sizeof(array) / sizeof(array[0]); for (int i = 1; i < count; i++) { int j = i; int temp = array[i]; while (j > 0 && temp < array[j - 1]) { array[j] = array[j - 1]; j--; } array[j] = temp; } for (int i = 0; i < count; i++) { printf("%d\n", array[i]); }
return 0;
}
插入排序是稳定的排序算法,
平均时间复杂度:O(n^2)
空间复杂度:O(1) (用于记录需要插入的数据)
0 0
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之 插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- Visual C++ 2010新功能之static_assert(静态断言)
- Windows下ROracle安装及使用
- 约瑟夫环问题的数组实现
- 排序算法之冒泡排序
- [Leetcode]Find Minimum in Rotated Sorted Array I & II
- 排序算法之插入排序
- 排序算法之选择排序
- 交换a,b两个元素的值
- 大家不要再用流量软件了,害人呀!
- ubuntu安装libxml2
- Codeforces 482C Game with Strings(dp+概率)
- Spring Security3.1 配置说明
- Android开发中:如何判断某Application和Activity的存在性
- android 机型适配问题