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

韩国风网站什么网站有做册子版

韩国风网站,什么网站有做册子版,中国新闻社招聘,大钟寺网站建设1、选择排序算法思想 选择排序是一种简单直观的排序算法。它的基本思想是: 从未排序序列中找到最小(或最大)的元素,将其存放到序列的起始位置(即与起始位置的元素交换)。 然后,再从剩余的未排序…

1、选择排序算法思想
选择排序是一种简单直观的排序算法。它的基本思想是:
从未排序序列中找到最小(或最大)的元素,将其存放到序列的起始位置(即与起始位置的元素交换)。
然后,再从剩余的未排序元素中继续寻找最小(或最大)的元素。
重复上述过程,直到所有元素均排序完毕。
可以理解为:不断地从后面未排序的部分选择一个最小的,放到前面已排序部分的末尾。

2、算法步骤(以升序为例)
假设有一个数组 arr,长度为 n。
第一轮:从 arr[0] 到 arr[n-1] 中找到最小的元素,将其与 arr[0] 交换。此时 arr[0] 已排好序。
第二轮:从 arr[1] 到 arr[n-1] 中找到最小的元素,将其与 arr[1] 交换。此时 arr[0] 和 arr[1] 已排好序。

第 i 轮:从 arr[i] 到 arr[n-1] 中找到最小的元素,将其与 arr[i] 交换。
如此循环,总共进行 n-1 轮,最后一轮只剩下一个元素,它自然是最大的,无需处理。

3、举例说明
代码实现
#include <stdio.h>
// 选择排序函数 (升序)
void selectionSort(int arr[], int n) {
int i, j, minIndex, temp;
// 外层循环,控制轮数,共进行 n-1 轮
for (i = 0; i < n - 1; i++) {
// 1. 假设当前未排序部分的第一个元素是最小的
minIndex = i;
// 2. 内层循环,在未排序部分 (i+1 到 n-1) 中寻找真正的最小值的位置
for (j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j; // 更新最小元素的索引
}
}
// 3. 如果找到的最小元素不在它应该在的位置 (i),就交换
if (minIndex != i) {
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
// 如果 minIndex == i,说明 arr[i] 已经是未排序部分的最小值,无需交换
}
}

// 打印数组的函数
void printArray(int arr[], int size) {
int i;
for (i = 0; i < size; i++) {
printf(“%d “, arr[i]);
}
printf(”\n”);
}

// 主函数测试
int main() {
int arr[] = {64, 25, 12, 22, 11};
int n = sizeof(arr) / sizeof(arr[0]); // 计算数组长度
printf(“原始数组: \n”);
printArray(arr, n);
selectionSort(arr, n); // 调用排序函数
printf(“排序后的数组: \n”);
printArray(arr, n);
return 0;
}
输出结果
原始数组:
64 25 12 22 11
排序后的数组:
11 12 22 25 64

选择排序是一种教学意义大于实际应用价值的算法。它帮助我们理解排序的基本思想——“选择”和“交换”,但在实际项目中,对于性能有要求的场景,通常会使用更高效的算法如快速排序、归并排序等。

http://www.dtcms.com/a/553426.html

相关文章:

  • day58-Shell编程(第四部分)
  • 用AI写了一个文档拼音标注工具 中文+拼音一键生成
  • 做网站还有意义同样是div 怎么有些网站收录少 有些多
  • 企必搜做网站做国际物流在哪些网站找客户
  • 移动端适配完全指南:从基础到最佳实践
  • 使用JMeter进行API性能压测(执行篇)
  • IntelliJ IDEA 远程调试(Remote Debugging)教程
  • 网站服务器++免费做电子手抄报的网站
  • 单页网站的优点网络公司是做什么的?
  • 阿瓦隆 Q 90T矿机:低功耗高效挖矿,是否值得选择?
  • 印度实时股票数据源接口对接文档-IPO新股、k线数据
  • HTTPS接口国密安全设计(含防重放设计)
  • 网站设计公司(信科网络)中国制造网外贸平台怎么注册
  • 网站模版如何去除title版权信息499元做网站
  • 武进建设局网站首页胖鼠wordpress
  • 机器学习第一阶段
  • Linux内核RDMA用户态内存映射机制深度解析:零拷贝高性能的基石
  • 组态软件和实时数据库区别大吗?
  • SpringBoot】Spring Boot 项目的打包配置
  • 递归专题5 - FloodFill算法专题
  • 系统架构设计师论文-论软件架构的复用
  • 沙市做网站weiswordwordpress微信登录设置
  • 理解MySQL的原理
  • Mac通过命令行开启ssh服务
  • 哈尔滨有哪些做网站的公司站长工具seo综合查询问题
  • 珠海做网站的wordpress 写作
  • 【计算机基础】之核心架构
  • 临西网站建设公司公司核名查询官网
  • PPIO独家上新GPU实例模板,一键部署Kimi-Linear
  • 工业级电池健康管理利器:GRX-3000 系列电池诊断站技术解析