图解排序算法-选择排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图解排序算法-选择排序相关的知识,希望对你有一定的参考价值。

选择排序图解:时间复杂度O(n^2),空间复杂度O(1)

数组:[243, 5, 7, 22, 3]

选出第一个最小值:

技术分享图片

选出第二个最小值:

 技术分享图片

选出第三个最小值:

技术分享图片

选出第四个最小值:

技术分享图片

核心代码实现:

 1 package org.apel.test.rp.test.sort;
 2 
 3 /**
 4  * 选择排序
 5  * @author alex lee
 6  *
 7  */
 8 public class SelectionSort extends AbstractSort{
 9 
10     public SelectionSort(int[] data) {
11         super(data);
12     }
13 
14     @Override
15     public void sort() {
16         for (int i = 0; i < data.length; i++) {
17             int min = i;
18             for (int j = i + 1; j < data.length; j++) {
19                 if (data[min] > data[j]) {
20                     min = j;
21                 }
22             }
23             swap(data, i, min);
24         }
25     }
26     
27     
28 
29 }

 

以上是关于图解排序算法-选择排序的主要内容,如果未能解决你的问题,请参考以下文章

八大排序算法C语言过程图解+代码实现(插入,希尔,选择,堆排,冒泡,快排,归并,计数)

排序算法之冒泡选择插入排序(Java)

排序算法之冒泡选择插入排序(Java)

(附代码)动图图解 | 十大经典排序算法Python版实现

scratch图解排序算法:插入排序冒泡排序选择排序归并排序快速排序堆排序

《图解算法》--二分查找选择排序递归