您的位置:首页 > 理论基础 > 数据结构算法

数据结构与算法之二分法插入排序

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();}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: