插入排序 二分查找插入排序
2016-08-17 10:14
281 查看
#include <stdio.h> #include <stdlib.h> #define MAXN 100 void insertsort(int array[],int top)//top为界限 { for(int i=1;i<=top;i++){ int left=0; int right=i-1; int temp=array[i]; while(right>=left) { int middle=(left+right)/2; if(array[middle]>temp) right=middle-1; else left=middle+1; } //查找结果:每次查找完,left总比right大一 //查找结果:最后,array[left]总比temp大 //插入结果:把与之前的数相同的数插入时,插在后方了 for(int j=i-1;j>=left;j--) array[j+1]=array[j]; array[left]=temp; } return; } int main() { int array[MAXN]; for(int i=0;i<MAXN;i++) scanf("%d",&array[i]); insertsort(array,MAXN-1); for(int j=0;j<MAXN;j++) printf("%d",array[j]); return 0; }
相关文章推荐
- 插入排序优化:简单插入排序->二分查找插入排序->二路插入排序->shell插入排序
- java的冒泡排序、选择排序与插入排序与二分查找
- 插入,冒泡,选择,快速排序,二分查找(Java版)
- C实现三种插入排序-简单插入排序、二分插入排序、希尔插入排序
- 插入排序的二分查找策略
- Python使用二分插入排序竟然比直接插入排序快99倍!
- [Algorithms] 分治算法(二分查找, 合并排序, 插入排序, 快速排序(coming))
- 优化的直接插入排序(二分查找插入排序,希尔排序)
- 排序(二)插入排序、插入改进——二分插入排序、插入改进——希尔排序
- 常见排序集合(冒泡排序,选择排序,直接插入排序,二分插入排序,快速排序,希尔排序,归并排序)
- 排序算法之直接插入排序、二分插入排序和希尔排序
- 归并排序、插入排序、快速排序、二分查找的c++实现
- 冒泡排序,插入排序,二分查找
- 算法---冒泡排序,快速排序,二分查找(折半查找),选择排序,插入排序
- python中实现二分查找,插入排序,归并排序,快速排序
- 插入排序和二分插入排序
- 直接插入排序、二分插入排序、希尔排序、冒泡排序与简单选择排序
- 插入排序-二分插入排序
- (一)排序简介:直接插入排序、冒泡排序、二分查找排序
- 经典算法:二分查找、插入排序、选择排序、冒泡排序