排序算法02----------------选择排序
1.选择排序:首先在未排序序列中找到最小或最大元素,存放到排序序列的起始位置,再从剩余未排序元素中继续寻找最小或最大元素,然后放到已排序序列的末尾。重复第二步,直到所有元素均排序完毕
2.选择排序和冒泡排序原理差不多,都是相邻两个元素进行比较,然后选择最大或最小的出来,但选择排序是记录最大或最小元素的下标,
相比于冒泡排序,少了很多交换元素的操作,因此占用cpu比较少时间,速度快一些。时间复杂度:O(n²)
3.代码如下
1 #include<stdio.h> 2 void selectionSort(int * arr,int num) 3 { 4 int minIndex; 5 int temp; 6 int i,j; 7 for(i=0;i<num;i++) 8 { 9 minIndex=i; 10 for(j=i+1;j<num;j++) 11 { 12 if(arr[j]<arr[minIndex]) 13 minIndex=j; 14 } 15 //找到未排序序列中的最小元素,和当前第i元素进行交换 16 temp=arr[i]; 17 arr[i]=arr[minIndex]; 18 arr[minIndex]=temp; 19 } 20 } 21 int main() 22 { 23 int i; 24 int arr[10]={1,3,-9,0,10,2,8,9,19,-1}; 25 selectionSort(arr,10);//选择排序 26 for(i=0;i<10;i++) 27 printf("%d\n",arr[i]); 28 return 0; 29 }
分类:
数据结构与算法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具