简单选择排序是经常用到的一种排序算法.

  原理: 

 1.简单选择排序一句话概括:每次选择无序数列中最小的将其放在有序数列的最后。

 2.在简单选择排序中,我们用初始化的数字int a[6]={2,5,6,3,1,4}

  1. 3.算法基本执行步骤1:找到初始的无序数组中最下的数,将其放在数组的头部。交换最小数和数组头部元素即可(这是与冒泡有区别的地方)。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. /*
  5. * 简单选择排序一句话概括:每次选择无序数列中最小的将其放在有序数列的最后。
  6. * 二、在简单选择排序中,我们用初始化的数字int a[6]={2,5,6,3,1,4}
  7. * 三、算法基本执行步骤1:找到初始的无序数组中最下的数,将其放在数组的头部。交换最小数和数组头部元素即可(这是与冒泡有区别的地方)。
  8. */
  9.  
  10. //替换
  11. void swap(int a[],int i,int j){
  12. int temp = a[i];
  13. a[i] = a[j];
  14. a[j] = temp;
  15. }
  16.  
  17. //快速排序
  18. void select_sort(int a[],int l)
  19. {
  20. // l = 6
  21. int i,temp,j,k;
  22. /*
  23. * 推导过程 2,5,6,3,1,4
  24. * i = 0 temp = 2 ,k =0 搜索到最小值1, k = 4 -> 1,5,6,3,2,4
  25. * i = 1 temp = 5 ,k =1搜索到最小值2, k = 4 -> 1,2,6,3,5,4
  26. * i = 2 temp = 6 ,k =2搜索到最小值3 k = 3 -> 1,2,3,6,5,4
  27. * i = 3 temp = 6 ,k =3搜索到最小值4 k = 5 -> 1,2,3,4,5,6
  28. * i = 4 temp = 5 ,k =4搜索不到 k = 4 k和i相同不做任何操作
  29. */
  30.  
  31. //最后一次不用循环
  32. for (i=;i<l-;i++){
  33. //获取头元素的值
  34. temp = a[i];
  35. k = i;
  36.  
  37. //printf("%d\n",temp);
  38. //从第i+1 元素开始查找,如果找到比首元素小就替换
  39. for (j = i+;j<l;j++){
  40.  
  41. if (a[j] < temp){
  42. //先记录下来最小值
  43. temp = a[j];
  44. k = j; //最小值的下标
  45. }
  46. }
  47.  
  48. //替换
  49. if ( i != k )
  50. swap(a,i,k);
  51. }
  52.  
  53. }
  54.  
  55. void main()
  56. {
  57. int a[] = {,,,,,};
  58. int i,l = sizeof(a) / sizeof(int);
  59.  
  60. //选择排序
  61. select_sort(a,l);
  62.  
  63. printf("选择排序后:\n");
  64. for ( i = ; i < l; ++i) {
  65. printf("%d\n",a[i]);
  66. }
  67.  
  68. }
  1.  

c语言选择排序的更多相关文章

  1. c语言 选择排序

    选择排序 //    int array[] = {3, 2, 6, 9, 8, 5, 7, 1, 4}; //    int count = sizeof(array) / sizeof(array ...

  2. C语言——选择排序

    ---恢复内容开始--- 算法思想: n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果: ①初始状态:无序区为R[1..n],有序区为空. ②第1趟排序 在无序区R[1..n]中选出 ...

  3. C语言 选择排序算法原理和实现 从数组中 找出最小的元素然后交换位置

    #include <stdio.h> int main(void) { /* 选择排序算法 原理:从数组中 找出最小的元素然后交换位置: */ int a[10] = {9,5,10,7, ...

  4. 简单选择排序(Simple Selection Sort)的C语言实现

    简单选择排序(Simple Selection Sort)的核心思想是每次选择无序序列最小的数放在有序序列最后 演示实例: C语言实现(编译器Dev-c++5.4.0,源代码后缀.cpp) 原创文章, ...

  5. 冒泡排序和选择排序(Go语言实现)

    冒泡排序和选择排序是排序算法中比较简单和容易实现的算法.冒泡排序的思想为:每一次排序过程,通过相邻元素的交换,将当前没有排好序中的最大(小)移到数组的最右(左)端.而选择排序的思想也很直观:每一次排序 ...

  6. 排序算法——选择排序(js语言实现)

    选择排序:顾名思义选择,选择排序属于O(N^2)的排序算法,意思就是选择数组中的最小的拿出来放在第一位,然后再剩下的数里面,选择最小的,排在第二位,以此类推. 例如:8  3  4  5  6  2  ...

  7. 选择排序的3种语言实现方法(C java python)

    1.选择排序的思路是:遍历数组,第一遍找出所有成员的最小值,放到数组下标为0的位置,第二遍从剩余内容中,再次找出最小值,放到数组下标为1的位置,以此类推,遍历完成所有的数组内容,最后结果就是:数组是按 ...

  8. C语言学习之选择排序

    上一篇文章中讲C语言排序中的比较常见的(交换)冒泡排序,那么这篇文章也将以新手个人的经历来讲同样比较常见而实用的数组排序之选择排序. 选择排序,从字面上看是通过选择来进行排序.其实它的用法就是通过选择 ...

  9. 基于python语言的经典排序法(冒泡法和选择排序法)

    前 每逢周末就遇雨期,闲暇之余,捣鼓了下python,心心念想学习,今天就在电脑上装了个2.7,学习了下经典算法,冒泡与选择排序法 第一次写关于python的文章,说的不当之处,多多指正,我积极改正 ...

随机推荐

  1. gulp使用笔记

    gulp简介 gulp 是基于 Nodejs 的自动任务运行器,能自动化地完成javascript/coffee/sass/less/html/image/css等文件的的测试.检查.合并.压缩.格式 ...

  2. javascript 字符串数组链接

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  3. 1117 冲刺一(Day 1)

    冲刺一(第一天) 项目需求确定 现阶段我们进行的项目是到店点餐系统.主要是开发手机端app为用户提供方便快捷的点餐服务.免去顾客到店后遇到因吃饭的人太多而找不到服务人员点餐的窘境.减少了服务人员因为忙 ...

  4. ReactJS学习笔记(三)

    需要注意的问题: 1.组件名称开头字母一定要大写.(PS:原因是 React 的 JSX 里约定分别使用首字母大.小写来区分本地组件的类和 HTML 标签.) 2.this.props.childre ...

  5. win7删除一些顽固的文件夹

    创建一个记事本,键入以下命令: DEL /F /A /Q \\?\%1 RD /S /Q \\?\%1 然后保存为bat文件,然后将要删除的文件或文件夹拖入bat的文件图标上,既可以强力删除一些无法删 ...

  6. 通过SQL Server 2008数据库复制实现数据库同步备份

    SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份.这里的同步备份指的是备份服务器与主服务器进行 实时数据同步,正常情况下只使用主 ...

  7. 封装、调用ajax

    1.JavaScript代码 //封装ajaxfunction ajax(obj) { var xhr = new createXHR(); obj.url = obj.url + '?rand=' ...

  8. 关于context:component-scan配置中use-default-filters参数的作用

    参考了多篇文章都说明了use-default-filters参数的基本用途,但有些主要点没有说到,这里补充记录下: <context:component-scan base-package=&q ...

  9. shell 脚本 exit 1 报错:numeric argument required问题解决

    原因是在window环境编辑会有特殊字符,解决办法:sed -i'' "s/\r//" file_name

  10. gulp配置文件备份

    /** * Created by leyi on 2016/8/25 0025. */ /*********************package.json依赖模块****************** ...