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

引言

说起排序算法,那可就多了去,首先了解什么叫排序
以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; 交换数组对应的位置 交换后
第一次外层循环结束

在这里插入图片描述

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

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

选择排序算法专区

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.mzph.cn/news/187966.shtml

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

相关文章

map()的用法

JavaScript Array map() 方法 先说说这个方法浏览器的支持&#xff1a; 支持五大主流的浏览器&#xff0c; 特别注意&#xff1a;IE 9 以下的浏览器不支持&#xff0c;只支持IE 9以上的版本的浏览器 特别注意&#xff1a;IE 9 以下的浏览器不支持&#xff0c;只支持IE 9以上的…

Android超简单实现-即时更新Toast(可直接复制)

效果 实现 第一步、封装个工具类ToastUtil.class&#xff08;可直接复制拿走&#xff09; public class ToastUtil {private static Toast mToast null; // toast对象&#xff0c;用于判断是否第一次使用/*** 即时更新Toast* param content content* param message 消息内容…

Nacos作为配置中心的一些知识二

11292327 问&#xff1a;客户端发请求给Nacos服务端&#xff0c;服务端这边会进行哪些处理&#xff1f; 答&#xff1a;客户端发请求给Nacos 服务端 &#xff0c;服务端这边通过ConfigController类的309行的listener方法&#xff0c;进行处理 第一步 获取客户端请求的文件的…

39.从0到上线三天搭建个人网站(第三天)

点赞收藏加关注&#xff0c;你也能住大别墅&#xff01; 一、第三天主要工作 1.完成detail页面的开发 2.将所有数据以及部分静态资源存在uniCloud&#xff0c;为以后做管理后台做准备 3.创建云对象getData&#xff0c;在beforecreate&#xff08;&#xff09;中获取数据 4.…

SQL server 基线安全加固操作

目录 账号管理、认证授权 ELK-Mssql-01-01-01 ELK-Mssql-01-01-02 ELK-Mssql-01-01-03 ​​​​​​​ ELK-Mssql-01-01-04 ​​​​​​​ ELK-Mssql-01-01-05 ​​​​​​​ELK-Mssql-01-01-06 日志配置 ELK-Mssql-02-01-01 通信协议 ELK-Mssql-03-01-01 ​​​​​…

【MySQL】视图:简化查询

文章目录 create view … as创建视图更改或删除视图drop view 删除视图replace关键字&#xff1a;更改视图 可更新视图with check option子句&#xff1a;防止行被删除视图的其他优点简化查询减小数据库设计改动的影响使用视图限制基础表访问 create view … as创建视图 把常用…

类 —— 友元、常/静态成员函数

类 类的大小 和结构体大小求法一致。但需注意&#xff0c;普通空类也会占用 1 字节大小&#xff0c;因为普通空类可以实例化对象。 而 抽象空类占 4 字节&#xff08;32 位机中&#xff09;&#xff0c;因为抽象空类中含有虚指针&#xff08;含有虚函数的非抽象空类同理&am…

3D点云目标检测:VoxelNex解读

VoxelNext 通用检测器 vs VoxelNext一、3D稀疏卷积模块1.1、额外的两次下采样消融实验结果代码 1.2、稀疏体素删减消融实验&#xff1a;代码 二、稀疏体素高度压缩代码 三、稀疏预测head 通用检测器 vs VoxelNext 一、3D稀疏卷积模块 1.1、额外的两次下采样 使用通用的3D spa…

保姆级大猿人中控系统搭建教程/话费充值系统/支持代理分销(12.1更新下)

前言 csdn上面是多久没更新啦&#xff0c;没啥值得写的&#xff0c;有也懒得写~ 写文章依然是那么飘逸&#xff0c;哈哈~ 最近看上了一款系统还是挺不错的&#xff0c;直接对接话费、垫费、燃气api充值的系统&#xff0c;还可以&#xff0c;市面上主流的话费中控系统&#xf…

最新发布SPAB模块,YOLOv5改进之SPAB

目录 一、原理 二、代码 三、应用到YOLOv5 一、原理 单幅图像超分辨率(SISR)是低分辨率计算机视觉中的一项重要任务,旨在从低分辨率图像中重建高分辨率图像。传统的注意机制虽然显著提高了SISR的性能,但往往导致网络结构复杂、参数过多,导致推理速度慢

python爬虫基础知识

使用python进行网络爬虫开发之前&#xff0c;我们要对什么是浏览器、什么HTML&#xff0c;HTML构成。请求URL的方法都有一个大概了解才能更清晰的了解如何进行数据爬取。 什么是浏览器&#xff1f; 网页浏览器&#xff0c;简称为浏览器,是一种用于检索并展示万维网信息资源的…

【力扣 面试题02.07链表相交】一种思路极其清晰的解法

力扣一单简单题&#xff0c;看完大佬的题解真是佩服得五体投地&#xff01; 虽是一道简单题&#xff0c;当我吭哧吭哧写了几十行后&#xff0c;看到大佬仅仅几行直接秒掉&#xff0c;只能说算法的本质还是数学&#xff0c;数学逻辑思维真是太重要了&#xff0c;有时候真得慢慢去…

操作系统进程与线程篇

目录 一、进程 1.1、进程状态 1.2、进程的控制结构 1.3、进程的控制 1.4、进程的上下文切换 二、线程 2.1.线程是什么 2.2、线程与进程的比较 2.3、线程的上下文切换 2.4、线程的实现 2.5、轻量级线程 三、进程间的通信方式 3.1、管道 3.2、消息队列 3.3、共享内…

代码人生,养生有道

导言&#xff1a; 在代码的征程中&#xff0c;我们往往忽略了自身的身体健康。这次的活动&#xff0c;我们不妨一同探讨一下&#xff0c;作为程序员&#xff0c;如何通过科学的养生方式&#xff0c;告别亚健康&#xff0c;迎接更健康、更充实的人生。 工作中的挑战 繁忙的工…

Node.js与npm的准备与操作

1.下载 Node.js官网&#xff1a;Node.jsNode.js is a JavaScript runtime built on Chromes V8 JavaScript engine.https://nodejs.org/en 打开后的界面如下&#xff1a; LTS&#xff08;Long Term Support&#xff09;&#xff1a;长期支持版&#xff0c;稳定版 Current&am…

键入网址到网页显示,期间发生了什么?(计算机网络)

一、浏览器首先会对URL进行解析 下面以http://www.server.com/dir1/file1.html为例 当没有路径名时&#xff0c;就代表访问根目录下事先设置的默认文件&#xff0c;也就是 /index.html 或者 /default.html 对URL进行解析之后&#xff0c;浏览器确定了 Web 服务器和文件名&am…

算法——动态规划

动态规划&#xff1a;有很多重叠子问题&#xff0c;每一个状态一定是由上一个状态推导出来的 贪心&#xff1a;没有状态推导&#xff0c;而是从局部直接选最优的 动规五步曲&#xff1a; 确定dp数组&#xff08;dp table&#xff09;以及下标的含义 确定递推公式&#xff08;容…

分享89个清新唯美PPT,总有一款适合您

分享89个清新唯美PPT&#xff0c;总有一款适合您 89个清新唯美PPT下载链接&#xff1a;https://pan.baidu.com/s/14DAA9jvVmlQZ_FJ4DNy9Rw?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整…

Java Class文件结构细节最全解读

官方文档位置&#xff1a;https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html Class 类的本质 任何一个Class文件都对应着唯一一个类或接口的定义信息&#xff0c;但反过来说&#xff0c;Class文件实际上它并不一定以磁盘文件的形式存在。Class 文件是一组以8位字…

解决电脑蓝屏问题:SYSTEM_THREAD_EXCEPTION_NOT_HANDLED,回到系统还原点

解决电脑蓝屏问题&#xff1a;SYSTEM_THREAD_EXCEPTION_NOT_HANDLED&#xff0c;回到系统还原点 1&#xff0c;蓝屏显示问题1.1&#xff0c;蓝屏1&#xff0c;清楚显示1.2&#xff0c;蓝屏2&#xff0c;模糊显示 2&#xff0c;排除故障问题3&#xff0c;解决蓝屏的有效方法 1&a…