数据结构与算法之二分法插入排序
2012-11-21 21:02
204 查看
一.算法思想:插入排序算法思想:将插入的数与有序的数组各数比较,按照大小关系插入,保持原有大小顺序。(按照数组尾到数组头的顺序遍历)而二分法插入:首先取出原有序中间数与新插的数比较,然后插入新数大小包含于其中的一半数组,再次取该数组中间数,如此重复下去,直至最后得到数组个数为一,将最后得到的数之后的数后移,然后将新插入的数放在该索引处。二.模拟源码:
#include<iostream>using namespace std;//直接插入排序int arr[15]={11,22,45,71,2,3,5,7,9,0,14,1,4,5,6};int list [15];void binaryInsertSort(int arr[],int size){ int low,high,temp,value; for(int i=0;i<size;i++){ value=arr[i]; low=0; high=i-1; while(low<=high){ temp=(low+high)/2; if(list[temp]<value) low=temp+1; else high=temp-1; } for(int k=i;k>=low;k--){ list[k]=list[k-1]; } list[low]=value; }}void show(){ for(int j=0;j<15;j++) cout<<list[j]<<" "; cout<<endl;}int main(){ binaryInsertSort(arr,15); cout<<"折半插入后:"<<endl; show();}
相关文章推荐
- 【1】数据结构与算法-1 直接插入排序法
- 【数据结构与算法】内部排序之一:插入排序和希尔排序的N中实现(不断优化,附完整源码)
- 数据结构与算法之--简单排序:冒泡、选择和插入
- 数据结构与算法之三直接插入排序
- 【数据结构与算法 00】二分插入排序
- 数据结构与算法---直接插入排序
- 【数据结构与算法】内部排序之一:插入排序和希尔排序的N中实现(不断优化,附完整源码)
- 数据结构与算法学习之路:直接插入排序
- 数据结构与算法之C#插入排序
- 【数据结构与算法】直接插入排序
- 【数据结构与算法】【排序】直接插入排序的代码实现
- 算法与数据结构基础(二)排序基础2.插入排序
- 数据结构与算法——插入类排序(直接插入排序,希尔排序)
- Java数据结构及算法实例:插入排序 Insertion Sort
- 数据结构与算法——直接插入排序
- 数据结构与算法之基础排序(冒泡/插入/选择)<十>
- 数据结构与算法二:插入排序
- 【数据结构与算法 03】直接插入排序
- 数据结构与算法之排序
- 数据结构图文解析之:直接插入排序及其优化(二分插入排序)解析及C++实现