插入排序
来源:互联网 发布:崔雪莉在sm的地位 知乎 编辑:程序博客网 时间:2024/05/16 05:21
设计思想:如下5个数3 1 4 5 6, 从第i=1个元素开始往前遍历,到6结束每次遍历都使从0到第i-1个元素依次与第i个元素判断,(升序)若比它大,则依次后移,反之则停止把它插入第i个元素。具体程序如下
#include <iostream> using namespace std; void sort(int *a, int len){ int i, j; int temp = 0; for(i=1; i<len; i++) { temp = a[i]; for(j=i-1; j>=0; j--) { if(a[j]>temp) a[j+1] = a[j]; else { //a[j+1] = temp; 这里可以注释掉 break; } } //注意内循环结束后,判断是否正常退出,若是说明前面一个都没有插入j=-1; 则应是a[i]最小,需插入第一个位置 //if(j<0)相对来说是一种优化,因为无论内循环是否正常退出,j的位置都会确定好 a[j+1] = temp; }}void print_o(int *a, int len){ int i; for(i=0; i<len; i++) cout << a[i] << " "; cout << endl;}int main(){ int a[5] = {4,3,3,6,2}; cout << "no sort : "; print_o(a, 5); sort(a, 5); cout << "has sort : "; print_o(a,5);}
0 0
- 插入排序-【插入排序】
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- NGUI中Panel渲染顺序记录
- 了解FTP
- Swap Nodes in Pairs
- 如何使用贝瑟尔曲线切的圆角 Button
- nginx编译选项的选择----nginx的学习之路
- 插入排序
- PhantomJS简介
- Error Handling
- 【翻译自mos文章】怎么检查Oracle Advanced Security Option 是否被安装上?
- QQ侧滑效果实现
- 第二章 创建和销毁对象(上)
- 华硕B85M-G主板安装心得
- Boundaries
- 【c程序】关于宏