栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

基数、二路归并排序

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基数、二路归并排序

1.基数排序

将所有数据从左向右,依次按照低位优先,全部进入到桶内,再从桶内取出

时间复杂度:O(dn) 空间复杂度:O(dn)

稳定性:稳定




void Get_Figure_Max(int *arr,int len)
{
    int max = arr[0];
	for(int i=1; i max)
		{
			max = arr[i];
		}
	}

    int count=0;
    while(max!=0)
    {
		count++;
        max/=10;
    }
    return count;
}
//获取过去值n的index这个位的值是多少      
int Get_Num(int n,int index)
{
    for(int i=0;i 

2.归并排序

一开始将所有的数据看成单独的个体,接着依次融合,直到所有的数据融合到一组,则停止

时间复杂度:O(nlog2 n) 空间复杂度:O(nlog2 n)

稳定性:稳定

L1

L1=H1 左边组值仅有一个(ok)

L1>H1 左边组值一个都没用(error)

//根据传进来的gap进行几几合并
static void Merge(int *arr,int len,int gap)
{
    //因为数据本身空间不够用,所以要申请一个和原数组等长的动态内存
    int *brr=(int *)malloc(sizeof(int)*len);
    assert(brr!=NULL);
    
    int L1=0;
    int H1=L1+gap-1;
	int L2=H1+1;
    int H2=(L2+gap-1

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/490397.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号