插入排序(折半插入)
来源:互联网 发布:xp系统网络ip地址设置 编辑:程序博客网 时间:2024/05/15 16:16
插入排序:O(n^2)
思路:将排序数组逻辑上分为两部分,一部分已经拍好续的(哪怕就一个数,或者没有),其余的为另一部分(未排序),读取未排序的部分,将值插入到已经排序过的序列的对应位置。
#include <stdio.h>#include <stdlib.h>#include <malloc.h>void genrand(int num,long * array){ if(num<0 || num >100) return; srand((unsigned int)time(0)); while(num--) array[num] = rand();}void halfInsertSort(long * array,int length){ if(array==NULL || length<=0) return; int i,j,tmp; for(i=1;i<length;i++){ tmp = array[i]; int low = 0; int hight = i-1; while(low<=hight){ int mid = (low+hight)/2; if(array[mid] > tmp) hight = mid-1; else low = mid+1; } for(j=i-1;j>=low;j--){ array[j+1] = array[j]; } array[low] = tmp; }}int main(int argc,char * argv){ int num = 10; long * array = (long *)malloc(sizeof(long)*num); genrand(num,array); halfInsertSort(array,num); while(num--) printf("%ld\n",array[num]); return 0;}
ubuntu14.04,vim,gcc
0 0
- 插入排序(折半插入)
- 插入排序(简单插入&折半插入)
- 插入排序--折半插入
- 插入排序--折半插入
- 插入排序(希尔排序、直接插入、折半插入排序)
- 数据结构-插入排序(直接插入排序+折半插入排序)
- 折半(二分)插入排序
- (25)折半插入排序
- 【插入排序】折半插入排序
- 插入排序--折半插入排序
- 折半插入排序,插入排序
- 插入排序-(直接插入、折半插入、Shell排序)
- 排序:折半插入排序
- 排序--折半插入排序
- 排序-折半插入排序
- 插入排序:表折半插入
- 插入排序(直接插入,折半插入,希尔)
- 排序2:插入排序(折半插入排序)
- iOS 支付宝页面无法跳转
- 选择排序(直接选择)
- 黑马程序员--Java基础--06-多线程1
- webwork+spring+hibernate进行数据增删查改操作时出现NullPointerException异常
- Unity优化技巧提到的3篇翻墙文章之Unity 4.3 關於 Occlusion Culling : 錯誤診斷
- 插入排序(折半插入)
- iOS 对象信息保存、转化JSON、JSON生成对象的模型方案记录
- Unity3D图片质量设置
- 顺序容器和关联容器添加新元素方法详解
- LeetCode 题解(247) : Two Sum III - Data structure design
- 终端查看静态库的详细信息,以及合并不同版本的静态库
- iOS获取键盘的高度
- multimap容器查找元素的三种方法总结
- HBase 0.98安装(伪分布式)