西安企业网站建设代理机构,宁波市海曙区建设局网站,淮北注册公司,网站帮助页面设计引言
说起排序算法#xff0c;那可就多了去#xff0c;首先了解什么叫排序 以B站为例#xff1a; 蔡徐坤在B站很受欢迎呀#xff0c;先来看一下综合排序 就是播放量和弹幕量#xff0c;收藏量 一键三连 都很高这是通过一些排序算法 才能体现出综合排序 蔡徐坤鬼畜 按照播…引言
说起排序算法那可就多了去首先了解什么叫排序 以B站为例 蔡徐坤在B站很受欢迎呀先来看一下综合排序 就是播放量和弹幕量收藏量 一键三连 都很高这是通过一些排序算法 才能体现出综合排序 蔡徐坤鬼畜 按照播放量来看最高的进行排序当然也可以按照搜索的结果来进行排序 关键字对于搜索的结果而言非常重要 提供关键字找到对应的视频 在根据关键字对应的视频排序
可能关键字的不同对应的是不同的视频 搜索排序是算法必备的 同时还可以考虑用户的个性化推荐根据用户的观看历史、搜索历史、点赞评论等行为数据利用机器学习算法进行推荐。这样可以更精准地推荐用户感兴趣的蔡徐坤鬼畜视频并提高用户的满意度和留存率。
所以排序有非常多种此时想必疑惑“这和选择排序有什么关系呢” 当然有关系。 选择排序是一种简单的排序算法可以应用到蔡徐坤鬼畜视频排序中。例如可以根据视频的播放量或者点赞数进行选择排序按照从大到小的顺序排列视频从而让用户更容易找到热门的、受欢迎的蔡徐坤鬼畜视频。当然选择排序只是一种基础的排序算法对于更复杂的排序任务需要使用更加高效的排序算法以提高排序的速度和效率。
选择排序思路 一共是7个数据元素 只要排序 外层 循环 i 0~ n-1 (n0) 定义maxindex 最大索引默认为0 内层循环j 1到 n-i 比较次数 n-i 当前还有多少未排序的元素 n-i-1当前已排序序列的最后一个元素的索引
第一次外层循环 i0 max0 第一次内层循环 j1 j7-i; 如果 115 165 j 直到 j5 更新maxindexj 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]); // 交换最大值和最后一个已排序元素的位置 }
}}