赞
踩
插入排序算法的原理:从前往后依次把元素插入到相应的位置。比插入元素大的向后移一个单位,直到找到比其小或者相等的元素才停止循环,并把元素插入到当前位置。
时间复杂度:O(n^2)。以下为实现代码:
- #include <iostream>
-
- using namespace std;
-
- void sort(int *arr,int length) //传入数组首地址和数组长度
- {
- int cur, preindex; //定义要插入的值和比较元素的下标
- for (int i = 1; i < length; i++) //一共需要循环 n-1 轮
- {
- cur = arr[i]; //插入的元素
- preindex = i - 1; //从插入元素的前一个元素开始比较
- while (cur < arr[preindex] && preindex >= 0) //若元素大于插入元素
- {
- arr[preindex + 1] = arr[preindex]; //元素向后移
- --preindex;
- }
- arr[preindex + 1] = cur; //把插入元素插到相应位置
- }
- }
-
- int main()
- {
- int arra[] = {12,12,54,1745,45,45,469,789,789};
- int length = sizeof(arra) / sizeof(arra[0]); //计算数组长度
- sort(arra,length); //调用排序算法
- for (size_t i = 0; i < length; i++) //输出排序后的数组
- cout << arra[i] << " ";
- system("pause");
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。