Bubble sort


comparison: 0
swap: 0

算法思想

将相邻的两个数值进行比较、交换,逐步让数组变得有序。

标记颜色说明

当前循环作为基准进行比较的item
当前循环中遍历到的另一个比较的item
每一次内部循环中,将要遍历的范围

Select sort


comparison: 0
swap: 0

算法思想

找出第 n 次循环可遍历的元素中最小的数值,并把它交换到数组的第 n 个位置。

标记颜色说明

当前循环作为基准进行比较的item
当前循环中遍历到的另一个比较的item
每一次内部循环中,将要遍历的范围

Insert sort


comparison: 0
Insert: 0

算法思想

将后面小的数值插入到比它大的元素前面,同时比它小的元素后面的位置。

标记颜色说明

当前循环作为基准进行比较的item
当前循环中遍历到的另一个比较的item
每一次内部循环中,将要遍历的范围
发生插入操作的item

Merge sort


comparison: 0
insert: 0

算法思想

递归的前半部分,将要排序的数组拆分成尽可能少元素的两部分,直到拆分的数组只有一个元素。 递归的后半部分,根据两个拆分数组之间的元素大小关系进行排列,然后合并成一个新的数组,并把这个合并好且有序的数组依次返回。

标记颜色说明

当前循环作为基准进行比较的item
当前循环中遍历到的另一个比较的item
每一次内部循环中,将要遍历的范围
发生插入操作的item

Quick sort


comparison: 0
swap: 0

算法思想

选择一个数值作为pivot(枢轴),经过一些步骤,使得位于pivot左侧的所有数值都小于pivot,而位于pivot右侧的所有数值都大于pivot。

标记颜色说明

当前循环作为基准进行比较的item
当前循环中遍历到的另一个比较的item
每一次内部循环中,将要遍历的范围
pivot(枢轴)