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

排序算法——简单选择排序

一、算法原理

简单选择排序是一种基本的排序算法,其原理是每次从未排序的元素中选择最小(或最大)的元素,然后与未排序部分的第一个元素交换位置,直到所有元素都被排序。

二、算法实现流程

简单选择排序法(Simple Selection Sort)就是通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<i<n)个记录交换之。

三、代码示例

#include <stdio.h>
void Swap(int *a,int *b)
{int temp = *a;*a = *b;*b = temp;
}void SelectSort(int *arr,int size)
{int j,i,min;for(i = 0;i < size;i++){min = i;                        /*将当前下标定义为最小值下标*/for(j = i + 1;j < size;j++)     /*循环之后的数据*/{if(arr[min] > arr[j])       /*如果有小于当前最小值的关键字*/{min = j;                /*将此关键字的下标赋值给min*/}}if(min != i)                    /*若min不等于i,说明找到最小值,交换*/{Swap(&arr[i],&arr[min]);    /*将最小值和arr[i]的值进行交换*/} }
}
void print(int *arr,int size)
{for (int i = 0; i < size; i++){printf("%d ", arr[i]);}printf("\n");
}int main()
{int arr[] = {5,4,3,6,2,0,1};int size = sizeof(arr)/sizeof(int);SelectSort(arr,size);printf("简单排序后的数组如下:");print(arr,size);return 0;
}

运行结果:

四、简单选择算法的复杂度分析

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 59 VXLAN+OSPF+l2vpn
  • QT多语言工具实现支持生成ts文件,ts文件和xlsx文件互转
  • 数据库规范化设计 5大基本原则
  • haproxy基础
  • Haproxy实现https
  • 使用Python解析pdf、docx等格式文件。
  • Google安装JSON-handle扩展
  • 以数字孪生技术推动网络资源管理升级
  • 力扣题解(按身高排序)
  • 文件上传漏洞(一,漏洞简介及简单利用)
  • Go语言使用内置库实现邮件发送
  • 使用Cisco进行模拟配置OSPF路由协议
  • Vue 项目中导入文件时如何默认找寻该文件夹下的 index.vue 文件
  • stm32—GPIO
  • 基于Martin实现MapboxGL自定义底图
  • [译]如何构建服务器端web组件,为何要构建?
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Java应用性能调优
  • Node + FFmpeg 实现Canvas动画导出视频
  • python大佬养成计划----difflib模块
  • TypeScript迭代器
  • vue2.0项目引入element-ui
  • 工作手记之html2canvas使用概述
  • 记一次和乔布斯合作最难忘的经历
  • 力扣(LeetCode)22
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 使用 QuickBI 搭建酷炫可视化分析
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 阿里云重庆大学大数据训练营落地分享
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​Java基础复习笔记 第16章:网络编程
  • # 服务治理中间件详解:Spring Cloud与Dubbo
  • $.ajax中的eval及dataType
  • (1)Jupyter Notebook 下载及安装
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (5)STL算法之复制
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)计算机毕业设计大学生兼职系统
  • (回溯) LeetCode 46. 全排列
  • (四)图像的%2线性拉伸
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • *** 2003
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .NET 8 跨平台高性能边缘采集网关
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .net 无限分类
  • .Net面试题4