排序算法
C'z x
这个作者很懒,什么都没留下…
展开
-
归并排序(时间复杂度o(nlogn))
在学归并排序之间我们必须先要学会递归递归就是方法调用其本身,达到循环目的。(递归需要有,递归关系式和递归出口 )归并排序基本思想归并排序就是递归得将原始数组递归对半分隔,直到不能再分(只剩下一个元素)后,开始从最小的数组向上归并排序。将一个数组拆分为两个,从中间点拆开,通过递归操作来实现一层一层拆分。 从左右数组中选择小的元素放入到临时空间,并移动下标到下一位置。 重复步骤2直到某一下标达到尾部。 将另一序列剩下的所有元素依次放入临时空间。 将临时空间的数据依次放入原数据数组。原创 2021-12-04 11:27:53 · 714 阅读 · 0 评论 -
冒泡排序(时间复杂度O(n^2) )
基本思想:前后两两进行比较交换升序排序当中每一轮比较会把最大的数会放到最后(这里以从小到大为例),所有相互比较的次数每一轮会比前一轮少一次。import java.util.Arrays;public class Mp { public static void main(String[] args) { int arr[] = { 3, 6, 10, 9, 2 }; mp(arr); } private static void mp(int[] arr) { // TOD原创 2021-12-05 20:44:16 · 737 阅读 · 0 评论 -
快速排序(时间复杂度为o(nlogn))
在学快速排序之间我们必须先要学会递归递归就是方法调用其本身,达到循环目的。(递归需要有,递归关系式和递归出口 )快速排序基本思想1.首先确定第一个数为基准数,确定左右两边的指针2.让右边的指针先走,去找比当前基准数小的数字,找到后停止3.让左边的指针后走,去找比当前基准数大的数字,找到后停止4.左右指针值进行互换5.当这两个指针相遇,让当前基准数和停止的位置互换6.递归:重复操作。代码import java.util.Arrays;public cla.原创 2021-12-04 11:49:17 · 454 阅读 · 0 评论 -
基数排序(时间复杂度为o(n))
基数排序基本思想先按个位排:把个位是0-9的数放入对应桶中(上边放),依次取出桶中值(从下出),个位就排好了。依次排十位,百位,到数中最大数的位数。代码import java.util.Arrays;public class js { public static void main(String[] args) { int arr[] = { 91, 78, 17, 563, 237, 45, 890, 34, 122, 0 }; js(arr); } priva.原创 2021-12-04 12:03:58 · 410 阅读 · 0 评论 -
堆排序(时间复杂度为O(nlogn))
大顶堆在完全二叉树的基础上,每个结点的值都。原创 2021-12-04 11:10:20 · 829 阅读 · 0 评论