五种基本排序算法的比较1:冒泡排序算法描述的是比较相邻元素。如果第一个大于第二个,则交换它们;对每一对相邻的元素做同样的事情,从开始的第一对到最后的最后一对,这样最后的元素应该是最大的数;对除最后一个元素之外的所有元素重复上述步骤;重复步骤1~3,直到排序完成。动画演示代码演示funcbubbleSort(arr[]int)[]int{iflen(arr)<=1{returnarr}fore:=len(arr)-1;e>0;e--{对于我:=0;我arr[i+1]{Swap(arr,i,i+1)//交换元素}}}returnarr}funcSwap(arr[]int,i,jint)[]int{temp:=arr[j]arr[j]=arr[i]arr[i]=tempreturnarr}2:选择排序算法描述了n条记录的直接选择排序可以通过N-1次直接选择排序得到有序的结果。具体算法描述如下:将假想的墙放在数字列表的最左边,墙的左边是已排序的子列表,右边是未排序的子列表;在未排序的子列表元素中找到(选择)最小(或最大);将所选元素与未排序列表中的第一个元素交换;将假想墙向右移动一个位置;重复步骤2到4,直到对整个数字列表进行排序(需要n-1轮)。动画演示代码演示funcselectSort(arr[]int)[]int{iflen(arr)<=1{returnarr}fori:=0;我<长度(arr);i++{varminIndexint=iforj:=i+1;j=0;j--{ifarr[j]>arr[j+1]{Swap(arr,j,j+1)}}}returnarr}4:快速排序算法描述快速排序的基础思想:将记录分开到一次pass排序成两个独立的部分,其中一部分记录的关键字小于另一部分记录的关键字,则可以将这两部分记录分别排序,从而实现整个序列的有序化。从序列中挑选一个元素,称为“枢轴”(pivot);重新排序序列,所有小于枢轴值的元素都放在枢轴前面,所有大于枢轴值的元素都放在枢轴后面(相同的数字可以到任何一边)。此分区退出后,基准测试位于序列的中间。这称为分区操作;递归(recursive)对小于参考值的元素子数组和大于参考值的元素子数组进行排序。动画演示代码实现//快速排序funcquickSort(arr[]int)[]int{iflen(arr)<=1{returnarr}middle:=arr[0]varleft[]intvarright[]intfor我:=1;我<长度(arr);i++{如果arr[i]>middle{right=append(right,arr[i])}else{left=append(left,arr[i])}}middle_s:=[]int{middle}left=quickSort(left)right=quickSort(right)arr=append(append(left,middle_s...),right...)returnarr}欢迎来到我的公众号,程序员小凡,下次见~