数据结构算法-选择排序算法

news2024/10/7 2:30:59

引言

说起排序算法,那可就多了去,首先了解什么叫排序
以B站为例:
在这里插入图片描述
蔡徐坤在B站很受欢迎呀,先来看一下综合排序 就是播放量和弹幕量,收藏量 一键三连 都很高这是通过一些排序算法 才能体现出综合排序

在这里插入图片描述
蔡徐坤鬼畜 按照播放量来看最高的进行排序,当然也可以按照搜索的结果来进行排序
关键字对于搜索的结果而言非常重要 提供关键字找到对应的视频 在根据关键字对应的视频排序

可能关键字的不同对应的是不同的视频 搜索,排序是算法必备的
同时,还可以考虑用户的个性化推荐,根据用户的观看历史、搜索历史、点赞评论等行为数据,利用机器学习算法进行推荐。这样可以更精准地推荐用户感兴趣的蔡徐坤鬼畜视频,并提高用户的满意度和留存率。

所以排序有非常多种,此时想必疑惑,“这和选择排序有什么关系呢?” 当然有关系。
选择排序是一种简单的排序算法,可以应用到蔡徐坤鬼畜视频排序中。例如,可以根据视频的播放量或者点赞数进行选择排序,按照从大到小的顺序排列视频,从而让用户更容易找到热门的、受欢迎的蔡徐坤鬼畜视频。当然,选择排序只是一种基础的排序算法,对于更复杂的排序任务,需要使用更加高效的排序算法,以提高排序的速度和效率。

选择排序思路

在这里插入图片描述
一共是7个数据元素,
只要排序 外层 循环 i=( 0~ n-1 ) (n>0) 定义maxindex 最大索引默认为0 内层循环j 1到 n-i 比较次数
n-i :当前还有多少未排序的元素
n-i-1:当前已排序序列的最后一个元素的索引

第一次外层循环
i=0
max=0
第一次内层循环
j=1 j<7-i;
如果 115> 165
j++
直到 j=5 更新maxindex=j
max此时=5
内层 循环遍历结束
如果 这个找到的max的值不等于 当前末尾的值 也就是 n-i-1; 交换数组对应的位置 交换后
第一次外层循环结束

外层循环开始。i代表当前已排序序列的长度(因为每次排序后,i会+1)。外层循环从0开始,到size - 2结束,共进行size - 1次循环。
初始化最大值的索引为0,因为假设第一个元素是当前未排序元素中的最大值。
内层循环开始。j代表当前未排序序列的长度。内层循环从0开始,到size - i - 1结束,每次循环中都寻找未排序序列中的最大值。
如果当前元素大于当前认为的最大值,那么更新最大值的索引。
内层循环结束后,我们得到了未排序元素中的最大值的位置。
如果最大值的索引不等于(size - i - 1),说明最大值不在正确的位置上,需要交换。
交换最大值和最后一个已排序元素的位置。
重复上述步骤,直到所有元素都已排序。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这是每次排序的结果
在这里插入图片描述

选择排序算法专区

void SelectSort(int arr[], int size){

// 外层循环开始。i代表当前已排序序列的长度(因为每次排序后,i会+1)  
for (int i = 0; i < size-1; i++) {  
  
    // 初始化最大值的索引为0,因为假设第一个元素是当前未排序元素中的最大值  
    int max = 0;    
      
    // 内层循环开始。j代表当前未排序序列的长度  
    for (int j = 1; j < size - i; j++) {  
          
        // 如果当前元素大于当前认为的最大值,那么更新最大值的索引  
        if (arr[j] > arr[max]) {  
            max = j;  
        }  
    }  
      
    // 如果最大值的索引不等于(size - i - 1),说明最大值不在正确的位置上,需要交换  
    if (max != size - i - 1) {  
        swap(arr[max], arr[size - i - 1]);  // 交换最大值和最后一个已排序元素的位置  
    }  
}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1276721.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年小美赛A题论文无偿分享!!

A题论文分享 链接&#xff1a; https://pan.baidu.com/s/1cltswCuiPG30HhuysrEVuA 提取码&#xff1a;sxjm 欢迎大家批评指正&#xff0c; 为了方便大家摘抄&#xff0c;所有内容均为中文。但是&#xff01;&#xff01;该比赛是英文论文竞赛&#xff0c;大家需要全部自行…

鸿蒙(HarmonyOS)应用开发——容器组件(Grid组件)

前言 前面一篇文章中&#xff0c;已经说了List组件。那么接下来就是容器组件中的Grid组件 #mermaid-svg-oz1b7w45ASmMlZFa {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-oz1b7w45ASmMlZFa .error-icon{fill:#5522…

centos7 yum安装jdk1.8

1.列出可安装版本 yum -y list java* 2.安装 yum -y install java-1.8.0-openjdk* 3.检查命令 java -version javac java

Leetcode—2661.找出叠涂元素【中等】

2023每日刷题&#xff08;四十六&#xff09; Leetcode—2661.找出叠涂元素 题意解读 题目意思就是&#xff0c;按照arr数组从左到右的顺序遍历各个arr[i]&#xff0c;涂抹这个值在矩阵中对应位置的网格&#xff0c;一旦你发现它所在的行或者列满员了&#xff0c;就返回这个i…

MyBatis-逆向工程

1.简单生成 1.添加依赖和插件 <dependencies><!-- MyBatis核心依赖包 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.9</version></dependency><!-- MySQL驱动…

抑郁症由什么引起?

抑郁症的发生并不是单一原因所导致&#xff0c;而是多种因素相互作用的结果。以下是一些主要的原因&#xff1a; 首先&#xff0c;生物学因素在抑郁症的发病中起到了关键作用。研究显示&#xff0c;抑郁症可能与遗传有关&#xff0c;家族中有患抑郁症的成员会增加个体患病的风…

『吴秋霖赠书活动 | 第五期』《Kubernetes原生微服务开发》

【作者主页】&#xff1a;吴秋霖 【作者介绍】&#xff1a;Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作&#xff01; 【作者推荐】&#xff1a;对JS逆向感兴趣的朋友可以关注《爬虫JS逆向实战》&#xff0c;对分布式爬虫平…

高速风梳的方案特点--【其利天下技术】

风梳作为美容美发用的一种设备&#xff0c;一直受国内外很多女性用户的喜爱。它对比高速风筒来说&#xff0c;因其设计的用途略有区别&#xff0c;一方面风梳可以做梳子用&#xff0c;换了头还可以作为风筒使用&#xff0c;所以在一定意义上&#xff0c;风梳更受人欢迎。 近年…

水利安全监测方案——基于RTU200的解决方案

引言&#xff1a; 水资源是人类赖以生存的重要基础&#xff0c;对于保障水利系统安全运行以及应对自然灾害起着关键作用。为了实现水利安全监测的目标&#xff0c;我们提出了基于RTU200的解决方案。本方案将结合RTU200的可靠性、灵活性和高效性&#xff0c;为您打造一个全面的…

CentOS 7 配置tomcat

简介 Tomcat是一个使用Java编写的开源Web应用服务器,是由Apache Software Foundation管理的一个项目。它是一个轻量级的应用服务器,可以下载、安装和使用,而且还提供了许多高级功能,例如支持Java Servlet、JavaServer Pages (JSP)和JavaServer Faces (JSF) 等JavaEE技术,…

一维和多维随机变量的高斯分布(正态分布)

高斯分布也叫正态分布。 一维随机变量正态分布的概率密度函数 其中&#xff0c;是期望&#xff0c;是方差。 多维随机变量正态分布的概率密度函数 假设是n维随机变量&#xff0c;表示矩阵的转置 期望向量是&#xff0c;协方差矩阵是&#xff0c;是协方差矩阵的行列式&#x…

“上云”还是“下云”?探云计算的下一站未来!

引言 10 月 27 日&#xff0c;X&#xff08;原Twitter&#xff09;工程技术发布帖子称&#xff0c;在过去的一年里&#xff0c;技术团队优化了 X 的云服务使用方式&#xff0c;着手将更多工作负载迁往本地基础设施。这一转变使 X 每月的云成本降低了 60%。所有媒体、Blob 存储均…

windows ssh时出现Bad local forwarding specification的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

服务器数据恢复—服务器断电导致XenServer数据文件丢失的数据恢复案例

服务器数据恢复环境&#xff1a; 某品牌720服务器搭配该品牌某型号RAID卡&#xff0c;使用4块STAT硬盘组建了一组RAID10阵列。服务器上部署XenServer虚拟化平台&#xff0c;系统盘 数据盘两个虚拟机磁盘。虚拟机上安装的是Windows Server操作系统&#xff0c;作为Web服务器使用…

捷诚管理信息系统CWSFinanceCommon.asmx SQL注入漏洞复现 [附POC]

文章目录 捷诚管理信息系统CWSFinanceCommon.asmx SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 捷诚管理信息系统CWSFinanceCommon.asmx SQL注入漏洞复现 [附POC] 0x01 前言 免责声明…

Kafka中的auto-offset-reset配置

Kafka这个服务在启动时会依赖于Zookeeper&#xff0c;Kafka相关的部分数据也会存储在Zookeeper中。如果kafka或者Zookeeper中存在脏数据的话&#xff08;即错误数据&#xff09;&#xff0c;这个时候虽然生产者可以正常生产消息&#xff0c;但是消费者会出现无法正常消费消息的…

二叉树刷题Leetcode

文章目录 104.二叉树的最大深度100.相同的树965.单值二叉树 104.二叉树的最大深度 int maxDepth(struct TreeNode* root) {if(rootNULL)return 0; int left1maxDepth(root->left); int right1maxDepth(root->right); return left>right?left:right; }处理二叉树最大深…

MIT线性代数笔记-第20讲-克拉默法则,逆矩阵,体积

目录 20.克拉默法则&#xff0c;逆矩阵&#xff0c;体积求逆公式克拉默法则用行列式关联体积 打赏 20.克拉默法则&#xff0c;逆矩阵&#xff0c;体积 求逆公式 考虑二阶方阵&#xff0c;有 [ a b c d ] − 1 1 a d − b c [ d − b − c a ] \begin{bmatrix} a & b \\ …

dynamic-datasource多数据源事务

Spring 事务管理分为编程式和声明式两种 编程式事务指的是通过编码方式实现事务&#xff1b;声明式事务基于 AOP&#xff0c;将具体的逻辑与事务处理解耦(编程式事务在这边不做过多陈述)。 声明式事务有两种方式&#xff0c;一种是在配置文件&#xff08;XML&#xff09;中做相…

Sentinel核心类解读:Node

基本介绍 Sentinel中的簇点链路是由一个个的Node组成的&#xff0c;Node是一个接口。Node中保存了对资源的实时数据的统计&#xff0c;Sentinel中的限流或者降级等功能就是通过Node中的数据进行判断的。 Sentinel中是这样描述Node的&#xff1a; Holds real-time statistics…