十大经典排序算法之选择排序。

embedded/2024/9/25 11:15:17/

​ 选择排序(Selection Sort)是一种简单直观的算法>排序算法,它的基本思想是通过重复从未排序的部分选择最小(或最大)的元素,并将其放到已排序部分的末尾,直到整个列表都排序完成,也就是说,他先把数组先分成了两个部分,一个是有序的,一个是无序的,如果我们是从小到大排序,那么每次都从未排序的部分中找到最小的,然后放到有序的部分中。

选择排序的基本步骤如下:

  1. 首先,假设整个列表为未排序部分。
  2. 在未排序部分中,找到最小(或最大)的元素,并将其与未排序部分的第一个元素交换位置,使得该最小(或最大)元素成为已排序部分的最后一个元素。
  3. 然后,将未排序部分的范围缩小一个元素,继续执行步骤2,直到整个列表都排序完成。
  4. 时间复杂度为 O(n^2)。

接下里我们给出一段选择排序的示例c代码

void select_sort(int *array, int array_num)
{int				i = 0;int				j = 0;int				pos = 0;   int				temp = 0;  printf("select sorting\n");for (i=0; i<array_num; i++){pos = i;//找到最小的数字对应的那个数组角标for (j=i+1; j<array_num; j++){if ( array[j]<array[pos] ){pos = j;}}temp = array[i];array[i] = array[pos];array[pos] = temp;}
}

http://www.ppmy.cn/embedded/21376.html

相关文章

笔记:Python 字符串与正则表达式(编程题)

文章目录 前言一、Python 字符串与正则表达式是什么&#xff1f;二、编程题编程题目一&#xff1a;字符串反转编程题目二&#xff1a;查找字符串中的数字编程题目三&#xff1a;检查字符串是否是回文串编程题目四&#xff1a;统计字符串中每个字符出现的次数编程题目五&#xf…

安科瑞AMC16-DETT铁塔基站多回路直流计量仪表

安科瑞薛瑶瑶18701709087/17343930412 AMC16(L)-DETT 基站直流电能计量模块主要是针对有共享需求&#xff0c;且开关电源无分用户电量计量功能的基站而设计的。仪表可对六个回路的直流电能进行计量&#xff0c;并可为配套的霍尔传感器提供工作电流&#xff0c;同时可通过上位机…

【高阶数据结构】并查集 -- 详解

一、并查集的原理 1、并查集的本质和概念 &#xff08;1&#xff09;本质 并查集的本质&#xff1a;森林。 &#xff08;2&#xff09;概念 在一些应用问题中&#xff0c;需要将 n 个不同的元素划分成一些不相交的集合。 开始时&#xff0c;每个元素自成一个单元素集合&…

conda环境导出环境内的包(requirements.txt)

问题 跑代码的时候配置环境是一个很麻烦的问题&#xff0c;一个项目可能需要很多包&#xff0c;可以使用pip/conda导出conda虚拟环境中的包。 解决 方式一&#xff1a;使用pip 1.使用pip freeze pip freeze > requirements.txt #可能会丢失依赖包的版本号 # 或者 pip l…

java IO模型详解

一、I/O中的同步、异步、阻塞和非阻塞 在计算机编程和系统设计中&#xff0c;同步&#xff08;Synchronous&#xff09;和异步&#xff08;Asynchronous&#xff09;以及阻塞&#xff08;Blocking&#xff09;和非阻塞&#xff08;Non-blocking&#xff09;是描述程序在执行IO…

【数据结构】排序

参考&#xff1a; 图解算法数据结构 leetcode题解 How to choose&#xff1a;如果对时间复杂度要求比较高并且键的分布范围比较广&#xff0c;可以使用归并排序、快速排序和堆排序。如果不能使用额外的空间&#xff0c;那么快速排序和堆排序都是不错的选择。如果规定了排序的键…

RN传入数字返回拼音首字母的包

安装包 yarn add pinyin^3.0.1 我当前项目的版本 切记不要安装4.0.0-alpha.0 这种版本号后面带字母的,会有问题 import React, {useEffect} from react; import {View, Text} from react-native; import {pinyin} from pinyin;const App () > {// 定义一个函数来将汉字转为…

编译支持播放H265的cef控件

接着在上次编译的基础上增加h265支持编译支持视频播放的cef控件&#xff08;h264&#xff09; 测试页面&#xff0c;直接使用cef_enhancement,里边带着的那个html即可&#xff0c;h265视频去这个网站下载elecard,我修改的这个版本参考了里边的修改方式&#xff0c;不过我的这个…