快速、插入、冒泡排序,二分查找

news/2024/5/19 23:36:52 标签: 冒泡排序, 二分查找, 快速排序

void swap(int *a,int*b)
{

int temp = *a;
*a = *b;
*b = temp;

}

void quicksort(int arr[],int left,int right) //快速排序
{

if (left>right)
{
    return;
}
int temp = arr[left];
int i = left;
int j = right;
while (i<j)
{
    while (arr[j]>=temp)
    {
        if (j <=i)
        {
            break;
        }
        j--;

    }
    while (arr[i]<=temp)
    {
        if (i>=j)
        {
            break;
        }
        i++;
    }
    if (i < j)
    {
        swap(&arr[i], &arr[j]);
    }
}

swap(&arr[left], &arr[i]);
quicksort(arr, left, i - 1);
quicksort(arr, i + 1, right);

}

void babblesort(int arr[],int length) //冒泡排序
{

for (int i = 0; i < length - 1;i++)
{
    for (int j = i; j < length-1;j++)
    {
        if (arr[j]>arr[j+1])
        {
            swap(&arr[j], &arr[j + 1]);
        }
    }
}

}
//二分查找
int binaryFind(int arr[],int left,int right,int key)
{

if (left>right)
{
    return -1;
}
int mid = (left + right) / 2;
if (arr[mid]==key)
{
    return mid;
}
if (arr[mid]>key)
{
    return binaryFind(arr, left, mid-1, key);
}
else  
{
    return binaryFind(arr, mid+1, right, key);
}

}

//插入排序
void insertsort(int arr[],int length)
{

for (int i = 1; i < length;i++)
{
    int temp = arr[i];;
    int j = i - 1;

    for ( j = i-1; j >=0;j--)
    {

        if (arr[j] >= temp)
        {
            arr[j + 1] = arr[j];//right shift
        }
        else
        {
            break;
        }

    }
    arr[j + 1] = temp;
}

}


http://www.niftyadmin.cn/n/626155.html

相关文章

内存池、进程池、线程池

池的概念 由于服务器的硬件资源“充裕”&#xff0c;那么提高服务器性能的一个很直接的方法就是以空间换时间&#xff0c;即“浪费”服务器的硬件资源&#xff0c;以换取其运行效率。这就是池的概念。池是一组资源的集合&#xff0c;这组资源在服务器启动之初就完全被创建并初始…

二阶段-三大框架之一SpringMVC前后端的联用、改端口号、热部署、Lombok插件、Gitee码云

目录 一、SpringMVC框架解析get方式提交的数据 案例&#xff1a;汽车类数据添加到mysql数据库中 1、创建表 2、创建前端网页&#xff0c;写ajax代码--充当MVC的View层 3、创建后端程序&#xff0c;接受请求入库 4、进行测试 5、总结思路 二、SpringMVC框架解析post方式提…

H.266中的多核变换

在HEVC标准中基本上仅仅使用DCT2作为变换核&#xff0c;只在帧内4*4的块的亮度分量使用了DST变换&#xff0c;而H.266的多核变换技术引入了更多的选择&#xff0c;新引入了DST7&#xff0c;DCT8,DCT5&#xff0c;DST1&#xff0c;目前仅仅帧间保留了DCT8和DST7&#xff0c;帧内…

一个做视频编解码的求职之路

秋招于10月15号左右结束了&#xff0c;为大家分享一下做视频编解码方面的公司和我面过的企业&#xff0c;整个校招我大概面了13家左右的公司&#xff0c;在北京的公司&#xff0c;这是为了找找求职经验的,很遗憾的互联网公司一家没面过&#xff0c;秋招最失败的地方。 据我了解…

三大框架之一Spring

目录 一、简介 二、spring框架 1、框架组成 2、核心概念 3、三大核心组件的关系 4、Spring框架两大核心&#xff1a;IoC和DI 4.1、IOC解释 4.2、DI解释 三、实现IOC的两种方式 1、XML的方式实现IOC的步骤 1.1、创建类 1.2、创建配置文件&#xff0c;配置类的信息 1.3、…

H.266中的双边滤波(Bilateral filter)

为了进一步消除因变换量化导致的振铃效应&#xff0c;在H.266的探索阶段&#xff0c;爱立信公司在第4次JVET会议中提出了一种双边滤波技术&#xff0c;并被JVET接受。该技术存在于反变换之后&#xff0c;提案JVET-D0069给出了具体的技术方案和编码性能&#xff0c;对于AI和RA结…

H.266的进展

至此&#xff0c;H.266结束了长达3年的探索阶段&#xff0c;正式开始制定标准&#xff0c;并于4月的JVET会议中&#xff0c;确定了H.266的参考软件VTM&#xff0c;该参考软件由HHI研究院提出&#xff0c;后期将会有很多新技术出现&#xff0c;等新的参考软件及对应的技术草案公…

HEVC 码率控制

码率控制通常分为三个level&#xff0c;分别为GOP级、Frame级、LCU级&#xff0c;其中Frame级分为三种方案&#xff0c;分别为等bit码率分配、固定比例码率分配、自适应比例的码率分配&#xff0c;其中固定比例分配方案是李斌博士提出&#xff0c;自适应比例分配是其师弟在其基…