- 博客(5)
- 收藏
- 关注
原创 算法4---排序算法总结
然后用(选择排序、快速排序、堆排序)排总分的时候,有可能A同学反而排在B同学后面,这就很不友好了。第一轮将下标[0]和[5]做了交换,得到【1 3 3 3 3 3 3 3 3 3 3 】,但是一开始下标0的3排到了下标 1 2 3 4的后面去了,这就破坏了原先的相对次序。同样值的个体之间,如果不因为排序而改变相对次序,就是这个排序是有稳定性的,否则就没有。将【3 3 3 3 3 1 3 3 3 3 3 】排序,选择排序中,冒泡排序、插入排序、归并排序、一切桶排序思想下的排序。选择排序、快速排序、堆排序。
2023-05-21 22:38:02 35 1
原创 算法3---堆排序和桶排序(golang)
大根堆的根节点肯定是最大的数,我们将根节点与数组最右边的数交换,就得到该数组最大的数,再讲index=0的进行heapify,得到大根堆,将根节点与数组最右边-1的数交换,周而复始,完成堆排序。下标为i的左子为2i+1,如arr[2]=2 2i+1=5 它的左子arr[5]=7 右子arr[2i+2]=4。定义heapfify方法,将i位置的数与左子右子比较,父不是最大的就往下交换,再与子节点比较。该数组为{1,5,2,3,9,7,4},将父节点比子节点小的数往下移。
2023-05-19 15:04:47 76 1
原创 算法2---归并排序与快速排序(golang)
mid:=(left+right)/2 //有可能越界mid:=left+(right-left)/2 //改进1mid := left + (right-left)>>1 //改进2 右移一位比除以2快。
2023-05-18 18:00:30 65
原创 算法1---异或与插入排序(golang)
先排7,1 得到{1,7, 2, 6, 3, 4, 6, 2, 1}再排 172 得到{1,2,7 6, 3, 4, 6, 2, 1}如{1,2,1,3,3,4,5,4,5,1,1,5},返回2,5。如{1,2,1,3,3,4,5,4,5,1,1},返回2。以此类推,类似摸扑克牌,往左边插入。最大复杂度O(n^2)
2023-05-17 14:23:35 45
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人