选择排序也属于蛮力法。
首先,扫描整个列表,找到最小的元素,将其和第一个元素交换位置;然后从第二个元素开始扫描列表,找到最小的元素,再将其和第二个元素交换位置……直到从倒数第二个元素开始扫描列表,找到最小的元素,将其和倒数第二个元素交换位置。

示意图如下。

C语言代码是:

void swap(int *a, int *b)
{int temp;temp = *a;*a = *b;*b = temp;
}//整形数组首地址是arr,数组长度为len,从左至右非降序排列
void select_sort(int *arr, int len)
{int i, j, min;for (i = 0; i < len - 1; ++i) {min = i;for (j = i + 1; j < len; ++j){if (arr[min] > arr[j])min = j;}if(min != i)swap(arr+i, arr+min);}
}

【完】

程序员面试系列——选择排序相关推荐

  1. 程序员面试系列——合并排序(递归实现)

    合并排序基本思想 合并排序,或者叫归并排序,在算法思想中属于分治法.对于一个需要排序的数组,合并排序把它一分为二,并对每个子数组递归排序,然后把这两个排好序的子数组合并为一个有序数组. 本文要介绍两种 ...

  2. 程序员面试系列之Java单例模式的攻击与防御

    我写的程序员面试系列 Java面试系列-webapp文件夹和WebContent文件夹的区别? 程序员面试系列:Spring MVC能响应HTTP请求的原因? Java程序员面试系列-什么是Java ...

  3. 【程序员面试系列】手把手教你如何面试,你要的我都有(工作项目篇)

    作者:Dimple Solgan:当你的才华还无法撑起你的野心时候,那应该静下心来好好学习 前面两篇文章的总结,我们学会了面试前简历的准备.技术知识准备和算法题准备.不知道你是否看完了呢,如果没看完的 ...

  4. 程序员面试系列(2)非计算机专业程序员

    大学中读了一个非计算机专业,就业之后发现程序员收入高,很多人勇敢的选择了转行,我们公司不对应聘者的大学专业有要求,基本上大专以上学历,工作三年经验就可以通过hr 的简历筛选,我在最近的面试中遇到了两位 ...

  5. 程序员面试系列——插入排序

    插入排序在算法思想中属于"减治法". 减治法的基本思想是:规模为n的原问题的解与较小规模的子问题的解之间具有某种关系.由于存在这种关系,所以只需求解其中一个较小规模的子问题就可以得 ...

  6. 程序员面试系列,MySQL常见面试题?

    原文链接 一.索引相关的面试题 (1)索引失效的情况有哪些 在MySQL查询时,以下情况可能会导致索引失效,无法使用索引进行高效的查询: 数据类型不匹配:如果查询条件中的数据类型与索引列的数据类型不匹 ...

  7. 程序员面试系列——冒泡排序

    虽然冒泡排序是排序算法里面最简单的一种,但是不可轻视.我在应届生的面试和社招的面试中,都被问到了冒泡排序. 基本思想:冒泡排序属于蛮力法,它比较表中的相邻元素,如果它们是逆序的话就交换它们的位置.重复 ...

  8. 程序员面试系列——有符号数的溢出

    请看这样一道题: #include <string.h> #include <stdio.h>int main(void) {signed char a[1000]={0};f ...

  9. 程序员面试系列——大小端

    大小端是哪里来的概念 大端.小端是"字节顺序"里面的概念.字节顺序可以分为大端序.小端序.混合序. 什么是字节顺序 "字节顺序"简称为"字节序&quo ...

最新文章

  1. swift_042(Swift的typealias(别名)的用法)
  2. 2020年快手校招JAVA岗笔试第一题
  3. spark_spark连接hive config
  4. 网站数据分析四:网站用户分析
  5. 大侦探福老师——幽灵Crash谜踪案
  6. (1)FPGA介绍(第1天)
  7. Javascript对象属性方法集锦
  8. 杭电4535吉哥系列故事——礼尚往来
  9. 神经网络用作分类器(附代码matlab)
  10. LREC'22 | 机器翻译中细粒度领域自适应的数据集和基准实验
  11. 开源旅游网站系统排名
  12. android 动态 设置layout_weight,android - 如何从代码中动态设置layout_weight属性?
  13. prop()方法的应用
  14. 学生党用什么蓝牙耳机好?学生党性价比高的蓝牙耳机推荐
  15. docker启动和关闭命令
  16. uniapp 消息推送与透传+语音播报
  17. Android 耳机检测原理介绍
  18. 机器学习是安全?还是威胁?
  19. 第四篇 再读Spring 之BeanDefinition注册
  20. AISummit全球人工智能技术大会顺利开幕:首日精彩回顾

热门文章

  1. Golang的数组、切片、映射的理解
  2. 形态形成场(矩阵乘法优化dp)
  3. shell 遍历目录下的所有文件
  4. centos 6 防火墙开启端口无效问题
  5. 使用NSURLCache 数据缓存
  6. 线性代数学习笔记(十一)
  7. 键盘各个键对应的ASCLL值
  8. 用jsphtml:file实现一个文件上传的例子,而且有验证
  9. 按文件类型获取其图标
  10. leetcode刷题实录:4