- 博客(7)
- 收藏
- 关注
原创 归并排序算法
首先理解分治的思想,一个很大的问题难以解决,就把它分成若干个规模较小的相同子问题,每个子问题是相互独立的,递归的解决子问题,再将子问题的解归并成原问题的解。现在再去理解归并排序,它是采用了分治的思想,分治法(Divide and Conquer),先分再治。把序列分成若干个较小的子序列,先把子序列排序,再治,把他们归并成有序的大序列。将待排序的线性表不断地切分成若干个子表,直到每个子表只包含一个元素,这时可以认为只子表是有序表。
2024-10-29 16:20:46
184
1
原创 快速排序算法
快速排序实际是一个递归的代码,重点就是要把数组通过基准(一般取第一元素)分开,先从右开始比较,如果小于基准交换元素,再从左边开始比较,大于基准,交换元素,继续从右边比较,最后基准左边的元素比基准小,基准右边的元素比基准大,再对左右两边的子数组进行递归排序。
2024-09-20 16:18:59
252
原创 希尔排序算法
希尔排序实际上是对直接插入排序算法的改进,关键是分组。直接插入排序的步长是1,比较的是两个元素之间的大小,而希尔排序是每趟比较固定的步长gap,gap的初始值是长度len/2,以后每趟是再次len/2,直到 len=1。虽然待排序的序列是通过gap分好组了,但是每次排序的的时候不是直接把一个组的元素排成有序,而是从每趟第一个待排序元素开始,依次对该组前面的元素使用直接插入排序。
2024-09-15 17:59:36
201
原创 插入排序算法
插入排序是把未排序的元素依次插入到已经有序的序列中,依次向前查找元素,若大于未排序元素,则后移,直到找到第一个小于未排序元素的位置,则位置确定、初始序列的第一个元素不用排序,默认有序的。
2024-09-12 20:03:11
175
原创 选择排序算法
选择排序是每趟选择最小的一个元素放到前面,在每一趟排序中假设未排序的第一个元素是最小值,把最小值和后面的元素依次比较,找出更小的元素,直到把把元素比较完,再交换第一个元素和最新最小值元素的位置。空间复杂度O(1),只在交换元素时使用了一个空间位置。时间复杂度O(n*n),两层for循环。
2024-09-10 16:34:10
223
原创 冒泡排序算法
冒泡排序是比较相邻的两个元素,小的放前面,大的放后面,再依次向后比较,每趟可以确定一个元素的最终位置。第一趟比较n-1次,第二趟比较n-2次,第三趟比较n-3次,,,,第n-1趟比较一次,当比较n-1趟走完时,已经确定n-1个元素的位置,只剩一个元素,不用比较。空间复杂度O(1),只在交换元素时使用一个空间位置。时间复杂度O(n*n),两层for循环。
2024-08-03 22:31:07
192
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人