目录

代码思路

代码实现


代码思路:

选择排序:每次遍历选出最大的;最小的 ;然后进行交换,打的放在最后小的放在前面

第一步 :

输入无序的数字然后传入数组当中,在传入函数进行排序:

第一次循环:

初始状态:

中间进行:

进行交换执行:Swap函数

maxi没有动进行修正 执行 maxi=mini;

第一次循环结束:

然后: end--;begin++;缩小区间 继续进行循环,直到begin==end时排序结束

效果:

然后继续循环第一次那样的步骤就使序列有序了。我给的代码是动态输入的排序。

用两个下标缩小区间优化了时间复杂度;同时提高了代码效率

代码实现:

#include<stdio.h>void Swap(int* x, int* y)
{int tmp = *x;*x = *y;*y = tmp;
}void selectSort(int arr[], int length)
{int begin = 0;int end = length - 1;while (begin < end){int mini = begin, maxi = begin;for (int i = begin; i <= end; i++){if (arr[i] < arr[mini]){mini = i;}if (arr[i] > arr[maxi]){maxi = i;}}Swap(&arr[mini], &arr[begin]);//如果beigin于maxi重叠修正一下;if (begin == maxi){maxi = mini;}Swap(&arr[maxi], &arr[end]);begin++;end--;}
}int main()
{int arr[10];printf("请输入十位无序数字(数字中间以空格隔开)进行排序:>");for (int i = 0; i < 10; i++){scanf("%d", &arr[i]);}int length = sizeof(arr) / sizeof(arr[0]);selectSort(arr, length);for (int i = 0; i < 10; i++){printf("%d ", arr[i]);}return 0;
}

选择排序(升序排序)对无序序列进行排序相关推荐

  1. python五种常见的排序方法是_python中序列的排序,sorted方法、reversed方法的使用...

    简介 INTRODUCTION 包括字典排序.列表排序.升序.降序.逆序 一.基础概念 我们知道python中的内建序列包括字典.列表.元组.字符串等,序列是python中最基本的数据结构. 列表.元 ...

  2. python升序和降序排序_python中序列的排序,包括字典排序、列表排序、升序、降序、逆序...

    一.基础概念 我们知道python中的内建序列包括字典.列表.元组.字符串等,序列是python中最基本的数据结构. 列表.元组.字符串这类的序列的索引默认第一个元素的索引从0开始,第二个元素的索引是 ...

  3. ❤️万字总结八大排序:冒泡排序,选择排序,插入排序,堆排序,希尔排序,归并排序,计数排序❤️

    目录 主要排序算法性能对比 冒泡排序 选择排序 插入排序 堆排序 希尔排序 快速排序 Hoare版 挖坑版 前后指针法 归并排序 计数排序 海量数据的排序问题 主要排序算法性能对比 冒泡排序 各位同学 ...

  4. 9个元素换6次达到排序序列_排序总结:二大种,六小种排序方式

    0.各种排序性能介绍 一.非线性时间比较排序 1.交换排序 1.1.冒泡排序 1.2.快速排序 2.插入排序 2.1.简单插入排序 2.2.希尔排序 3.选择排序 3.1.简单选择排序 3.2.堆排序 ...

  5. 2.C++-选择排序、冒泡排序、插入排序、希尔排序、归并排序、快速排序

    1.常用排序算法介绍 一个排序算法的好坏需要针对它在某个场景下的时间复杂度和空间复杂度来进行判断.并且排序都需要求其稳定性,比如排序之前a在b前面,且a=b,排序之后也要保持a在b前面. 常用排序算法 ...

  6. 【排序综合】直接插入排序,希尔排序,快速排序,堆排序,冒泡排序,简单选择排序的简介,实现和算法复杂度分析

    目录 1. 直接插入排序 1.1 直接插入排序简介 1. 什么是直接插入排序 2. 排序思想 1.2 排序实现 1. 排序代码 2. 复杂度分析: 3. 运行结果: 1.3 学习链接 2. 希尔排序( ...

  7. 十大排序算法详解(一)冒泡排序、选择排序、插入排序、快速排序、希尔排序

    文章目录 一.冒泡排序 1.1 冒泡排序基础[必会知识] 1.2 冒泡排序优化 1.2.1 外循环优化 1.2.2 内循环优化 1.2.3 双向遍历 1.3 冒泡排序的稳定性.复杂度和适用场景 1.3 ...

  8. python选择排序从大到小_经典排序算法和Python详解之(一)选择排序和二元选择排序...

    本文源自微信公众号[Python编程和深度学习]原文链接:经典排序算法和Python详解之(一)选择排序和二元选择排序,欢迎扫码关注鸭! 扫它!扫它!扫它 排序算法是<数据结构与算法>中最 ...

  9. 掌握常见的内部排序方法(插入排序,冒泡排序,选择排序,快速排序,堆排序,希尔排序,归并排序,基数排序等)...

    掌握常见的内部排序方法(插入排序,冒泡排序,选择排序,快速排序,堆排序,希尔排序,归并排序,基数排序等). 数组高级以及Arrays(掌握) 排序方法 空间复杂度 时间复杂度 稳定性 插 入 排 序 ...

最新文章

  1. 中国肠道大会 | 日程及嘉宾(4月16日更新)
  2. [网站上线]Lamp环境及其后续配置
  3. ***常用vbs脚本
  4. 30多年程序员生涯经验总结(成功源自于失败中的学习;失败则是因为容忍错误的横行)...
  5. 手机app上的consent管理
  6. sql server 千万级大数据sql更新_医疗SQL每日实例6数据更新大法
  7. Codeforces 55D Beautiful Number (数位统计)
  8. 传参方法:sharedApplication, NSUserDefaults, protocol 和 delegate(实例)
  9. ZAB(Zookeeper Atomic Broadcast)协议详解
  10. UITableview高度计算
  11. Hibernate Search v.4.2.0.CR1 发布
  12. Java开发笔记(一百三十七)JavaFX的标签
  13. android定时器常用方法,Android计时器的三种实现方式
  14. 音频处理——音频编码原理简介
  15. 保研杂记(上)心灵鸡汤篇
  16. 最新智商测试html5,2017年最新智商测试题
  17. 数电常见74系列器件及其功能总结(不要再混乱啦,值得收藏)
  18. volo拉丁语_拉丁语:Latin Quotes and Phrases (V)
  19. 驼峰命名法等命名规范
  20. only buildscript {} and other plugins {} script blocks are allowed before plugins {} blocks...

热门文章

  1. python实现自动翻译剪切板
  2. 网页修改linux命令行,linux中文本修改操作命令linux网页制作 -电脑资料
  3. 数控计算机软件的确认表怎么做,[计算机软件及应用]单元3 数控编程基础.doc
  4. 语言设置影响Win11汉字显示乱码
  5. SqlServer语句优化 OPTION(RECOMPILE)
  6. 转载 基于bayer型阵列的空间域插值
  7. 服务的添加和使用过程
  8. 北斗三号短报文终端露天矿山高边坡监测方案
  9. 免杀Veil-evasion
  10. 佟强老师的Java课件