排序算法
我的龙呢
这个作者很懒,什么都没留下…
展开
-
希尔排序
希尔排序 1.由小到大排序 2.时间复杂度为n的线性对数阶,是一种不稳定的排序 3.希尔排序是在插入排序算法上的一种改进,即在完整的插入排序前先按照步长对数组中部分的元素进行插入排序,以达到初步筛选的目的 4.外循环控制步长(步长从数组的长度开始以2的倍数进行缩小取不到0),内循环从步长开始,以步长为间隔进行插排 4.插入排序和希尔不是同一阶级没有可比性 public static void shellSort(int[] arr) { // gap为步长 步长由(arr.length/2原创 2021-03-01 16:36:35 · 96 阅读 · 0 评论 -
快速排序
快速排序 1.由小到大排序 2.时间复杂度为n的线性对数阶,是一种不稳定的排序 3.有左 中 有 三个索引,左右两个索引均向中间索引移动,把左边所有大于中间值的值,放到中间值的右边,右边所有小于中间值的值放到中间值的左边,直到左右索引相遇 4.冒泡排序和快排不是同一阶级没有可比性 public static void quickSort(int []arr,int left,int right){ int l=left; //左索引 int r=right; //右索引原创 2021-03-01 16:23:32 · 86 阅读 · 0 评论 -
插入排序
插入排序 1.由小到大排序 2.时间复杂度为n的平方阶,是一种稳定的排序 3.外循环控制要比较的值,内部while循环进行判断:如果后面的值小于前面的值,前面的值后移,直到前面的值小于后面的值,此时把insertValue插入到该位置既可 4.因为不是每一次比较都进行交换,所以插入排序的速度比冒泡排序要快。 public static void Insertsort(int[] arr) { for (int i = 1; i < arr.length; i++) { //原创 2021-03-01 16:09:15 · 75 阅读 · 0 评论 -
冒泡排序法
冒泡排序法 1.由小到大排序 2.时间复杂度为n的平方阶,是一种稳定的排序 3.外循环控制排序的次数,内循环从0索引开始向右推出数组剩余元素中一个最大的数。 4.插入一个flag对排序进行优化:如果某一次排序后没有进行过交换,说明此时数组已经排序完了,直接退出排序。 public static void bubbleSort(int[] arr) { int temp=0; // 对一次排序有没有经过交换进行标记 boolean flag=false;原创 2021-03-01 15:32:47 · 100 阅读 · 0 评论