基础算法之简单选择排序(selection sort)
2021/5/12 22:27:12
本文主要是介绍基础算法之简单选择排序(selection sort),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1,名 称:简单选择排序
2,复杂度:O(n^2)
3,实现方式:C语言
4,空间复杂度:O(1)
5,稳定性:不稳定
6,算法思想:总共遍历两次,外层循环是算法总共要至执行的此数,那么为什么呢?因为该算法每一次执行外层循环会进行一次交换,默认i所在的位置是最大或者最小(要根据升序还是降序确定),然后里层循环是确定要交换的数字,请具体的思想请大家去代码中体会吧!
7,算法种类:升序(ascending order)、降序(descending order)
8,算法实现代码:
#include "stdio.h" #include "conio.h" void swap(int *a, int *b){ int temp ; temp = *a; *a = *b; *b = temp; } //升序---简单选择排序 SelectionSortAsc(int *a,int n){ int i,j,min; for( i = 0;i < 10; i++){ min = i; for(j = i+1;j < 10; j++){ if(a[j] < a[min]){ min = j; } } if(min != i) swap(&a[i],&a[min]); } printf("\n ascending order:"); } //降序---简单选择排序 SelectionSortDesc(int *a,int n){ int i,j,max; for( i = 0;i < 10; i++){ max = i; for(j = i+1;j < 10; j++){ if(a[j] > a[max]){ max = j; } } if(max != i) swap(&a[i],&a[max]); } printf("\n descending order:"); } main(){ int i; int a[20] = {10,8,6,5,3,2,9,7,4,1}; SelectionSortAsc(a,10); for(i = 0 ; i < 10; i++) printf("%d ",a[i]); printf("\n"); SelectionSortDesc(a,10); for(i = 0 ; i < 10; i++) printf("%d ",a[i]); getche(); }
9,运行结果
参考:C语言选择排序详解及其实现
C语言实现基础算法大全
这篇关于基础算法之简单选择排序(selection sort)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-06怎么解决跨域资源共享(CORS)问题?-icode9专业技术文章分享
- 2024-11-06在高德地图中怎么取经纬度-icode9专业技术文章分享
- 2024-11-06如何计算两个GPS坐标之间的距离-icode9专业技术文章分享
- 2024-11-06可视化的操作流程步骤是什么-icode9专业技术文章分享
- 2024-11-06TypeScript面试真题详解与实战攻略
- 2024-11-06TypeScript大厂面试真题解析与实战教程
- 2024-11-05Snowflake Cortex大语言模型函数:让AI数据查询更简单高效
- 2024-11-05Azure开发更轻松:VS Code中的GitHub Copilot for Azure公测版
- 2024-11-05Databricks与Snowflake:数据处理实力大比拼
- 2024-11-05Sealos Devbox 使用教程:使用 Cursor 开发一个高仿苹果官网