C笔记 - 算法:选择排序
2021/10/24 9:10:19
本文主要是介绍C笔记 - 算法:选择排序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
选择排序
1 - 选择排序(Selection-sort)是一种简单直观的排序算法
2 - 工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置
然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾
以此类推,直到所有元素均排序完毕
3 - 它表现最稳定的排序算法之一,无论什么数据进去都是 O(n2) 的时间复杂度
唯一的好处可能就是不占用额外的内存空间
4 - 代码示例
1 #import <Foundation/Foundation.h> 2 3 int main(int argc, const char * argv[]) { 4 @autoreleasepool { 5 6 // 随便搞个数组 7 int array[] = {5,3,12,6,2,10}; 8 int length = sizeof(array)/sizeof(array[0]); 9 10 11 // 外层控制轮数: 需要(leng - 1)次 12 for (int i = 0; i < length-1; i ++) { 13 14 printf("第 %d 轮排序\n",i+1); 15 16 // 假设 i 是最小值的索引 17 int min = i; 18 19 // 内层控制每一轮的比较次数 20 for (int j = i+1; j<length; j++) { 21 22 // 升序:遍历最小值(索引) 23 if(array[j] < array[min]){ 24 min = j; 25 } 26 } 27 28 // 交换位置:如果最小索引不是假定的索引 29 if (min != i) { 30 int temp = array[i]; 31 array[i] = array[min]; 32 array[min] = temp; 33 } 34 35 // 打印排序结果 36 for (int i = 0; i < length; i++) { 37 printf("%d ",array[i]); 38 } 39 printf("\n---------------------\n"); 40 41 } 42 43 printf("\n最终排序结果\n"); 44 for (int i = 0; i < length; i++) { 45 printf("%d ",array[i]); 46 } 47 printf("\n"); 48 49 } 50 return 0; 51 }
日志输出
这篇关于C笔记 - 算法:选择排序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04el-table 开启定时器下,表格的选中状态会消失是什么原因-icode9专业技术文章分享
- 2024-10-03如何安装和初始化飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03如何安装 App 并连接到飞牛 NAS?-icode9专业技术文章分享
- 2024-10-03如何安装飞牛 TV 并连接到影视服务器?-icode9专业技术文章分享
- 2024-10-03如何在PVE和ESXI上安装飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS安装系统异常情况处理-icode9专业技术文章分享
- 2024-10-03飞牛NAS如何创建存储空间?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS硬盘会自动休眠吗?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何安装飞牛影视和创建媒体库?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何为家人朋友开通影视账号?-icode9专业技术文章分享