Golang实现常见的排序算法

冒泡排序

原理:

像气泡一样浮到水面,越小的元素会经由交换慢慢”浮”到数列的顶端。

bubble

实现:

bubble

测试:

bubble_test

结果:

image-20240221103126295

选择排序

原理:

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

select

实现:

select

测试:

思路同冒泡排序

结果:

image-20240221103341567

插入排序

原理:

插入排序是一种最简单直观的排序算法,通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

insert

实现:

insert

测试:

思路同冒泡排序

结果:

image-20240221103231091

快速排序

原理:

快速排序利用分而治之的思想,递归的把小于基准值元素的子数列和大于基准值元素的子数列排序。

quick

实现:

quick

测试:

quick_test

结果:

image-20240221103500740