插入排序 二分查找插入排序

来源:互联网 发布:java中compareto的用法 编辑:程序博客网 时间:2024/05/18 05:01
#include <stdio.h>#include <stdlib.h>#define MAXN 100void 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;}

1 0
原创粉丝点击