冒泡排序
图 https://www.cnblogs.com/onepixel/articles/7674659.html
go
|
|
比较排序
go
|
|
插入排序
思路:将数组拆分为一个有序的,一个无序的。初始时下标0永远为有序数组。
建立循环,从下标1开始到数组的长度,每个都与前一个进行对比,如果比前一个值小,就互相换位,当当前值比上一个值大时,说明当前值之前都是已经排序好的数组。就退出。
例子:如该数组 [...]int{10, 56, 4, 654, 8, 997}
,
第一次循环时,n=1 i=1 56 > 10
跳出。
第二次循环时,{10, 56, 4, 654, 8, 997} n=2 i=n=2
, 4<56
互换,值为 {10, 4, 56, 654, 8, 997}
,内部循环继续进行,i=1 4<10互换为 [4 10 56 654 8 997]
。内部循环结束,条件为i<0
go
|
|
快速排序
思路:以一个基准数将数组拆分为两个,一边大于这个数,一边小于这个数。从数组第0个开始,首先先记录此基准数的下标和值 {312, 84, 543, 5, 100, 23}
,k=0 v=312。需要传入一个从哪里开始到哪里的位置。这里基准数为第一个,顾循环位置就从0+1开始 循环完之后为 84 84 543 5 100 23
go
|
|