算法面经--选择排序

作者: 永不熄灭的火焰_e306 | 来源:发表于2020-06-12 21:21 被阅读0次

选择排序

介绍:是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。

一、算法思路

选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从 arr[0]~arr[n-1]中选取最小值, 与 arr[0]交换,第二次从 arr[1]~arr[n-1]中选取最小值,与 arr[1]交换,第三次从 arr[2]~arr[n-1]中选取最小值,与 arr[2] 交换,…,第 i 次从 arr[i-1]~arr[n-1]中选取最小值,与 arr[i-1]交换,…, 第 n-1 次从 arr[n-]~arr[n-1]中选取最小值, 与 arr[n-2]交换,总共通过 n-1 次,得到一个按排序码从小到大排列的有序序列。

实现图解:

选择排序1.png 选择排序2.png

[图片上传失败...(image-ebec15-1591967993075)]

二、代码实现

 //选择排序
  public static void selectSort(int[] arr){
  for(int i=0;i<arr.length-1;i++){
  int minIndex= i;
  int min = arr[i];
  for(int  j=i+1;j<arr.length;j++){
  if(arr[j]<min){
  min = arr[j]; //重置min和minIndex
  minIndex = j;
  }
  }
  //将最小值放在arr[i],即交换
  if(minIndex!=i){
  arr[minIndex] = arr[i];
  arr[i] = min;
  }
  }
  }

相关文章

  • 算法面经--选择排序

    选择排序 介绍:是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。 一、算法思路 选...

  • 算法-选择排序

    算 法:选择排序算法时间复杂度: 选择排序算法概述 选择排序伪代码 选择排序实现 选择排序算法概述 排序算法有许...

  • Algorithm -- 排序算法

    单链表十大经典排序算法冒泡排序选择排序插入排序归并排序快速排序堆排序计数排序桶排序 1. 十大经典排序算法 十大经...

  • 算法4:插入排序和选择排序算法的比较

    排序算法列表电梯: 选择排序算法:详见 《算法4》2.1 - 选择排序算法(Selection Sort), Py...

  • 算法面经--冒泡排序

    冒泡排序 一、冒泡排序原理 通过对待排序序列从前向后(从下标较小的元素开始),依次比较 相邻元素的值,若发现逆序...

  • 算法面经--快速排序

    快速排序 一、算法思路 快速排序(Quicksort)是对冒泡排序的一种改进。 基本思想是:通过一趟排序将要排序的...

  • 算法面经--希尔排序

    希尔排序 一、算法思路 简单插入排序存在的问题: 当需要插入的数是较小的数时,后移的次数明显增多,对效率有影响。 ...

  • 《算法4》2.1 - 插入排序算法(Insertion Sort

    排序算法列表电梯: **选择排序算法:详见 Selection Sort ** 插入排序算法(Insertion ...

  • PHP常用算法

    基于选择的排序算法 常见的基于选择的排序算法有:冒泡排序、插入排序、选择排序、归并排序和快速排序,我们在选在排序算...

  • 排序算法(四)选择排序

    排序算法(四)选择排序 1.算法思路  选择排序(Selection-Sort)是一种简单直观的排序算法。它的工作...

网友评论

    本文标题:算法面经--选择排序

    本文链接:https://www.haomeiwen.com/subject/ubantktx.html