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

选择排序算法OpenMP并行优化

一 选择排序算法原理
     时间复杂度,O(n 2)。 每次从未排序序列中选择最小元素,交换到已排序序列末尾。


二  具体步骤


1)初始状态

       已排序区间为空,未排序区间为[0,n-1]。
2)第i次迭代
    在未排序区间[i, n-1]中找最小值索引min_idx
交换arr[i]与arr[min_idx]。
3)重复n-1次直到全部有序。

三  C++串行实现
   void selectionSort(int arr[], int n) {
    for (int i = 0; i < n-1; ++i) {
        int min_idx = i;
        for (int j = i+1; j < n; ++j) {
            if (arr[j] < arr[min_idx])
                min_idx = j;
        }
        std::swap(arr[i], arr[min_idx]);
    }

}

四  OpenMP并行优化(重点加速查找最小值阶段)
#include <omp.h>

相关文章:

  • 【编程题】7-5 堆中的路径
  • 理解C++模板库:依赖名
  • Dagger 2 系列(五)——进阶之@Scope 和 @Singleton
  • 《网络安全》中RSA加密算法的计算过程
  • Windows 图形显示驱动开发-WDDM 3.2-用户模式工作提交(三)
  • NFC标签读写开发指南
  • 《反脆弱》:从不确定性中获益的智慧✨
  • DHCP配置(二)— 接口模式
  • 【神经网络】python实现神经网络(二)——正向推理的模拟演练
  • 【Qt】成员函数指针
  • 【机器学习chp12】半监督学习(自我训练+协同训练多视角学习+生成模型+半监督SVM+基于图的半监督算法+半监督聚类)
  • ngx_openssl_module
  • 97.在 Vue 3 中使用 OpenLayers 根据两行根数 (TLE) 计算并显示卫星轨迹(EPSG:3857)
  • 特辣的海藻!9
  • 数据库基本建表操作
  • 介绍一下Qt 中的QSizePolicy 布局策略
  • 内网激活JRebel插件(无网络环境)
  • Cannot resolve symbol ‘view‘ Androidstudio报错解决办法
  • golang从入门到做牛马:第九篇-Go语言条件语句与循环语句:掌控程序的“指挥棒”
  • Zabbix监控进程报警(Zabbix Monitoring Process Alarm)
  • 设计师常用的灵感网站/网站建设一条龙
  • 天津如何做百度的网站推广/怎么建个人网站
  • 传新闻到网站上怎么做/优化网站制作方法大全
  • 开发商交房需要提供哪些证书/兰州seo公司