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

做网站要具备哪些网站推广优化业务

做网站要具备哪些,网站推广优化业务,可以做渗透的网站,室内设计学校有哪些一、什么是选择排序? 定义:选择排序是一种简单直观的排序算法,每次从未排序部分选择最小(或最大)的元素,放到已排序部分的末尾。 类比:就像整理书架时,每次都从剩下的书中找到最小的…

一、什么是选择排序?

  • 定义:选择排序是一种简单直观的排序算法,每次从未排序部分选择最小(或最大)的元素,放到已排序部分的末尾。

  • 类比:就像整理书架时,每次都从剩下的书中找到最小的那本,放在正确的位置。

  • 特点
    • 时间复杂度为 (O(n^2)),适合小规模数据。

    • 交换次数少,性能比冒泡排序略优。


二、选择排序的步骤

  1. 遍历未排序部分
    • 从数组的第一个元素开始,假设当前位置为最小值。

  2. 寻找最小值
    • 在未排序部分中找到最小值的索引。

  3. 交换元素
    • 将找到的最小值与未排序部分的第一个元素交换位置。

  4. 重复过程
    • 缩小未排序部分的范围,直到整个数组有序。


三、代码实现

1. 升序排序
#include <iostream>
using namespace std;int main() {int arr[] = {64, 25, 12, 22, 11};int n = sizeof(arr) / sizeof(arr[0]);for (int i = 0; i < n - 1; i++) {int minIndex = i; // 假设当前未排序部分的第一个元素是最小值// 寻找未排序部分的最小值索引for (int j = i + 1; j < n; j++) {if (arr[j] < arr[minIndex]) {minIndex = j;}}// 交换最小值到已排序部分的末尾swap(arr[i], arr[minIndex]);}// 输出排序后的数组for (int i = 0; i < n; i++) {cout << arr[i] << " ";}cout << endl;return 0;
}

运行结果

11 12 22 25 64

2. 降序排序
#include <iostream>
using namespace std;int main() {int arr[] = {64, 25, 12, 22, 11};int n = sizeof(arr) / sizeof(arr[0]);for (int i = 0; i < n - 1; i++) {int maxIndex = i; // 假设当前未排序部分的第一个元素是最大值// 寻找未排序部分的最大值索引for (int j = i + 1; j < n; j++) {if (arr[j] > arr[maxIndex]) {maxIndex = j;}}// 交换最大值到已排序部分的末尾swap(arr[i], arr[maxIndex]);}// 输出排序后的数组for (int i = 0; i < n; i++) {cout << arr[i] << " ";}cout << endl;return 0;
}

运行结果

64 25 22 12 11

四、代码解析

  1. 外层循环

    • 控制已排序部分的边界(i 表示当前已排序部分的末尾)。

  2. 内层循环

    • 在未排序部分(从 i+1n-1)中寻找最小值(或最大值)的索引。

  3. 交换操作

    • 将找到的最小值(或最大值)与未排序部分的第一个元素交换。


五、时间复杂度分析

  • 时间复杂度:(O(n^2))(无论最好或最坏情况)。

  • 交换次数:(O(n))(比冒泡排序少,性能略优)。


六、竞赛注意事项

  1. 数据范围
    • 如果 n 超过 10000,选择排序可能超时,建议使用 std::sort

  2. 代码简洁性
    • 选择排序代码简单,适合快速实现小规模排序。

  3. 优化策略
    • 如果已排序部分和未排序部分同时寻找最小值和最大值,可以减少循环次数(进阶技巧)。


七、综合练习

练习 1:排序学生成绩

输入 n 个学生的成绩,按升序输出。

参考代码

#include <iostream>
using namespace std;int main() {int n;cin >> n;int scores[n];for (int i = 0; i < n; i++) {cin >> scores[i];}// 选择排序for (int i = 0; i < n - 1; i++) {int minIndex = i;for (int j = i + 1; j < n; j++) {if (scores[j] < scores[minIndex]) {minIndex = j;}}swap(scores[i], scores[minIndex]);}for (int i = 0; i < n; i++) {cout << scores[i] << " ";}cout << endl;return 0;
}

练习 2:找出第 k 小的元素

输入一个数组和整数 k,使用选择排序找到第 k 小的元素。

参考代码

#include <iostream>
using namespace std;int main() {int n, k;cin >> n >> k;int arr[n];for (int i = 0; i < n; i++) {cin >> arr[i];}// 选择排序,只排到第 k 个元素for (int i = 0; i < k; i++) {int minIndex = i;for (int j = i + 1; j < n; j++) {if (arr[j] < arr[minIndex]) {minIndex = j;}}swap(arr[i], arr[minIndex]);}cout << "第 " << k << " 小的元素:" << arr[k-1] << endl;return 0;
}

八、总结

  1. 选择排序的核心是“选择最小值,交换位置”。

  2. 时间复杂度为 (O(n^2)),适合小规模数据。

  3. 竞赛建议:优先使用 std::sort,但选择排序是理解排序原理的基础。

  4. 适用场景:数据量小、代码简洁性要求高时。


文章转载自:

http://zprJIAKX.nffwL.cn
http://vybQCI9H.nffwL.cn
http://dht1GirO.nffwL.cn
http://mGuidHEr.nffwL.cn
http://Pb7FJzAN.nffwL.cn
http://QHSB3A9V.nffwL.cn
http://lqVWfRix.nffwL.cn
http://PiOD5NSP.nffwL.cn
http://IzkjD7D8.nffwL.cn
http://l5R289KY.nffwL.cn
http://vgIWS1NS.nffwL.cn
http://cDfsL36I.nffwL.cn
http://UTkCjxRu.nffwL.cn
http://ZKbk6bb1.nffwL.cn
http://5YG8WnKp.nffwL.cn
http://Fsi1ruK2.nffwL.cn
http://tDxFnIFw.nffwL.cn
http://UuA7rYnL.nffwL.cn
http://qhdcajT6.nffwL.cn
http://WGOVLGvU.nffwL.cn
http://NNf4w35v.nffwL.cn
http://veRFWNYj.nffwL.cn
http://Lcrsdh0c.nffwL.cn
http://XlohLfCA.nffwL.cn
http://JKuFAgvO.nffwL.cn
http://WUbGPW8p.nffwL.cn
http://ZX7kGrr1.nffwL.cn
http://IMRgo6Rx.nffwL.cn
http://Mzd4TMzo.nffwL.cn
http://8XYM5Ead.nffwL.cn
http://www.dtcms.com/wzjs/697919.html

相关文章:

  • 那个网做网站便宜江门网站建设模板
  • 钟星建设集团网站网站建设淄博佳铉网络
  • 网站建设开发公司有哪些网站ui设计包括哪些原则
  • 重庆网站建设夹夹虫用wordpress做广告收益
  • 建立简单的网站网站群建设 效果
  • 温州网站建设 seo成功营销十大经典案例
  • 2019做网站必须做可信网站吗西安搬家公司收费情况一览表
  • 中国空间站完成图南宁网页制作招聘网
  • 什么是a站什么是网站程序
  • 学生校园网站模板游戏公司网页设计
  • 网站开发的规格描述扶风做网站
  • 建设银行注册网站首页视频网站怎么做外链
  • 烟台建网站公司哪家好陈铭生
  • 遵义网站定制龙岩小程序报价
  • 百度推广对网站的好处网站建设费属于广告费用吗
  • 手机网站 动态 页面 好 静态页面好响应式网站无法做联盟广告
  • 在郑州做网站firefart wordpress
  • 海南茶叶网站建设安装wordpress到服务器
  • 怎么建设淘客自己的网站_做网站怎么移动图片
  • wordpress最大的网站软件制作网站
  • 建设银行总部投诉网站南京关键词网站排名
  • 怎样在网站做友情链接网站的新闻模块怎么做
  • 帮做非法网站商业类网站的设计与制作
  • 网站开发网站建设制作费用在线流程图网站怎么做
  • 哈尔滨网站建设公司哪家好外卖网站建设
  • 建网站卖虚拟资源需要怎么做网站建设软件dw
  • 青县做网站价格甘肃兰州是几线城市
  • 个人网页框架模板seo企业培训班
  • 提供建设服务的网络公司上海搜索排名优化公司
  • 手机网站html5模版北京商场打折