当前位置: 首页 > article >正文

快速排序(霍尔法),冒泡排序 【C语言】

冒泡排序

效率低,但是稳定性高
代码

// 冒泡排序
void maopao(int a[]);

int main()
{
    int a1[10] = {34,78,29,46,12,85,63,92,57,31};
    
    printf("\n排序前:\n");
    print(a1);
    maopao(a2);
    printf("冒泡排序后:");
    print(a2);
}

//冒泡排序
void maopao(int a[])
{
    for(int i = 0; i < 10; i++)
    {
        for(int j = 0; j < 10-i-1; j++)
        {
            if(a[j] > a[j+1])
            {
                swap(&a[j], &a[j+1]);
            }
        }
    }
}

快速排序(霍尔法)

效率更高,但是稳定性差
代码

// 打印数组
void print(int a[]);
// 元素交换
void swap(int *a, int *b);
// 快速排序
void kuaisu(int *left, int *right);

int main()
{
	int a1[10] = {34,78,29,46,12,85,63,92,57,31};
	int a2[10] = {34,78,29,46,12,85,63,92,57,31};

	printf("\n排序前:\n");
	print(a1);
	kuaisu(a1, a1+9);
	printf("快速排序后:");
	print(a1);
}

// 打印数组
void print(int a[])
{
    for(int i = 0; i < 10; i++)
    {
        printf("%d ", a[i]);
    }
    printf("\n");
}
// 交换两个元素
void swap(int *a, int *b)
{
    int temp = *a;
    *a = *b;
    *b = temp;
}

// 快速排序
void kuaisu(int *left, int *right)
{
    if(left >= right)
        return;

    int *i = left;
    int *j = right;

    while( i < j )
    {
        while(i < j && *j >= *left)
            j--;
        while(i < j && *i <= *left)
            i++;
        if(i < j)
            swap(i, j);
    }

    swap(i,left);
    kuaisu(left, i-1);
    kuaisu(i+1, right);

    return;
}



http://www.kler.cn/a/471585.html

相关文章:

  • _decl_class_registry 与 metadata.sorted_tables的区别
  • 【计算机网络】常见交换机名词术语
  • torch.max和torch.softmax python max
  • 【linux系统之redis6】redis的安装与初始化
  • STM32U575按键转换及设备驱动
  • 最好用的图文识别OCR -- PaddleOCR(2) 提高推理效率(PPOCR模型转ONNX模型进行推理)
  • PHP:PHP脚本通过正则表达式动态修改指定文件下的php文件的sql内容加入指定条件enable_flag = ‘Y‘(“Y“)
  • JSON Schema属性使用汇总
  • Python入门教程 —— 文件操作
  • 对比式机器学习揭示了跨物种共享和特异性的脑功能结构|文献速递-视觉大模型医疗图像应用
  • AI生成前端页面:解放前端开发,拥抱AI时代的高效
  • 【深入理解Mysql】
  • 《Python趣味编程》专栏介绍与专栏目录
  • 常用存储器介绍
  • ros2-4.1 服务通信介绍
  • 【git命令】--- git经典常用操作命令大全
  • 实时计算 Flink 版:赋能数据驱动,让决策快人一步
  • 英语外刊写作积累(2024.09)
  • JavaWeb—Servlet详解
  • Unigui基于vue+elementui的自研框架
  • JVM一之类加载子系统
  • 多模态图文检索实战——基于CLIP实现图文检索系统(附源码)
  • AI驱动的可演化架构与前端开发效率
  • 【Java基础】正则表达式的使用与常用类分享
  • 业务日志设计
  • # Java 发送电子邮件示例