【排序算法】选择排序法 & C++实现 | [实例过程分析]

简介: 选择排序法 & C++实现

●选择排序法


1.简要介绍

选择排序算法代码段:


for (int i = 0; i < len - 1; i++)
  {
        int temp;
  int k = i;
  for(int j=i+1;j<len;j++)
  { 
    if (a[k] > a[j])
    k = j;
  }
  if(k!=j)
  { 
    temp = a[i];
    a[i] = a[k];
    a[k] = temp;
  }
  }

2.图形化演示

随机找五个数使用快速排序法进行从小到大排序,如下图所示。


       在第一行中(k起始状态为0),①进行第一次将j(j=1)的值赋值给k(k=1),②进行第二次将j(j=2)的值赋给k(k=2),③进行第三次将j(j=4)的值赋值给k(k=4),最后进行两数的交换。


       在第二行中(k起始状态为1),①进行第一次将j(j=2)的值赋值给k(k=2),比较判断后,无其它操作,最后进行两数的交换。


       在第三行中(k起始状态为2),比较判断后,无其它操作。


       在第四行中(k起始状态为3),①进行第一次将j(j=4)的值赋给k(k=4),最后进行两数的交换;在第五行中,完成了最终的从小到大的排序。

0b7174b5e1b62103f708f13c65cc2b54_4fc6625e041d4d7f964d7487ea6ca396.png


3.代码如下

#include<iostream>
using namespace std;
#define size 10
class selectsort {
public:
  void selectsort_1(int a[],int len);
  void shownumber();
  int arr[size];
};
void selectsort::selectsort_1(int a[], int len)
{
  int temp;
  int i,j,k;
  for (i = 0; i < len - 1; i++)
  {
  k = i;
  for(j=i+1;j<len;j++)
  { 
    if (a[k] > a[j])
    k = j;
  }
  if(k!=j)
  { 
    temp = a[i];
    a[i] = a[k];
    a[k] = temp;
  }
  //测试代码
  cout << i + 1 << ":" << " ";
  for (int m = 0; m < len; m++)
  {
    cout << a[m] << " ";
  }
  cout << endl;
  }
}
void selectsort::shownumber()
{
  for (int i = 0; i < size; i++)
  {
  cout << this->arr[i] << " ";
  }
}
void text()
{
  selectsort ss;
  for (int i = 0; i < size; i++)
  {
  cin >> ss.arr[i];
  }
  ss.selectsort_1(ss.arr, size);
  ss.shownumber();
}
int main()
{
  text();
}

4.结果如下

765435ece3c0cd46539f47c496723cce_3e147ca8b1c94d0da62a31ddabe758e1.png



目录
打赏
0
0
0
0
46
分享
相关文章
从理论到实践,Python算法复杂度分析一站式教程,助你轻松驾驭大数据挑战!
【10月更文挑战第4天】在大数据时代,算法效率至关重要。本文从理论入手,介绍时间复杂度和空间复杂度两个核心概念,并通过冒泡排序和快速排序的Python实现详细分析其复杂度。冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1);快速排序平均时间复杂度为O(n log n),空间复杂度为O(log n)。文章还介绍了算法选择、分而治之及空间换时间等优化策略,帮助你在大数据挑战中游刃有余。
206 3
|
16天前
|
员工行为监控软件中的 Go 语言哈希表算法:理论、实现与分析
当代企业管理体系中,员工行为监控软件已逐步成为维护企业信息安全、提升工作效能的关键工具。这类软件能够实时记录员工操作行为,为企业管理者提供数据驱动的决策依据。其核心支撑技术在于数据结构与算法的精妙运用。本文聚焦于 Go 语言中的哈希表算法,深入探究其在员工行为监控软件中的应用逻辑与实现机制。
55 14
境内深度合成服务算法备案通过名单分析报告
本报告基于《境内深度合成服务算法备案通过名单》,分析了2023年6月至2025年3月公布的10批备案数据,涵盖属地分布、行业应用及产品形式等多个维度。报告显示,深度合成算法主要集中于经济发达地区,如北京、广东、上海等地,涉及教育、医疗、金融、娱乐等多行业。未来趋势显示技术将向多模态融合、行业定制化和安全合规方向发展。建议企业加强技术研发、拓展应用场景、关注政策动态,以在深度合成领域抢占先机。此分析旨在为企业提供参考,助力把握技术发展机遇。
境内深度合成服务算法备案通过名单分析报告
从公布的前十一批其他算法备案通过名单分析
2025年3月12日,国家网信办发布算法备案信息,深度合成算法通过395款,其他算法45款。前10次备案中,深度合成算法累计3234款,其他类别647款。个性化推送类占比49%,涵盖电商、资讯、视频推荐;检索过滤类占31.53%,用于搜索优化和内容安全;调度决策类占9.12%,集中在物流配送等;排序精选类占8.81%,生成合成类占1.55%。应用领域包括电商、社交媒体、物流、金融、医疗等,互联网科技企业主导,技术向垂直行业渗透,内容安全和多模态技术成新增长点。未来大模型检索和多模态生成或成重点。
从公布的前十一批其他算法备案通过名单分析
从第十批算法备案通过名单中分析算法的属地占比、行业及应用情况
2025年3月12日,国家网信办公布第十批深度合成算法通过名单,共395款。主要分布在广东、北京、上海、浙江等地,占比超80%,涵盖智能对话、图像生成、文本生成等多行业。典型应用包括医疗、教育、金融等领域,如觅健医疗内容生成算法、匠邦AI智能生成合成算法等。服务角色以面向用户为主,技术趋势为多模态融合与垂直领域专业化。
企业监控软件中 Go 语言哈希表算法的应用研究与分析
在数字化时代,企业监控软件对企业的稳定运营至关重要。哈希表(散列表)作为高效的数据结构,广泛应用于企业监控中,如设备状态管理、数据分类和缓存机制。Go 语言中的 map 实现了哈希表,能快速处理海量监控数据,确保实时准确反映设备状态,提升系统性能,助力企业实现智能化管理。
48 3
从第九批深度合成备案通过公示名单分析算法备案属地、行业及应用领域占比
2024年12月20日,中央网信办公布第九批深度合成算法名单。分析显示,教育、智能对话、医疗健康和图像生成为核心应用领域。文本生成占比最高(57.56%),涵盖智能客服、法律咨询等;图像/视频生成次之(27.32%),应用于广告设计、影视制作等。北京、广东、浙江等地技术集中度高,多模态融合成未来重点。垂直行业如医疗、教育、金融加速引入AI,提升效率与用户体验。
基于哈希表的文件共享平台 C++ 算法实现与分析
在数字化时代,文件共享平台不可或缺。本文探讨哈希表在文件共享中的应用,包括原理、优势及C++实现。哈希表通过键值对快速访问文件元数据(如文件名、大小、位置等),查找时间复杂度为O(1),显著提升查找速度和用户体验。代码示例展示了文件上传和搜索功能,实际应用中需解决哈希冲突、动态扩容和线程安全等问题,以优化性能。
Java中的算法优化与复杂度分析
在Java开发中,理解和优化算法的时间复杂度和空间复杂度是提升程序性能的关键。通过合理选择数据结构、避免重复计算、应用分治法等策略,可以显著提高算法效率。在实际开发中,应该根据具体需求和场景,选择合适的优化方法,从而编写出高效、可靠的代码。
85 6
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
127 1

热门文章

最新文章