排序算法
文章平均质量分 89
墨染秦月
静水流深
展开
-
插入排序法及其改进
探讨下插入排序法的传统代码及改进代码原创 2018-06-23 17:09:53 · 1018 阅读 · 0 评论 -
算法排序(五)——归并排序法
目的:使用归并排序法对随机数组进行排序归并排序思路:假设数组有n个数,先将其分为两半,再对这两半继续对半分隔...重复操作直到分隔后的小部分只有一个数。接着对这两个数进行归并操作,归并后得到一个有序的两个数组成的小数组,再将其与另一个有序的两个数组成的小数组进行归并,重复操作,直到所有数组有序。之所以要先不断分隔,是为了左右两侧内部要保证有序,才可以进行归并操作。话不啰嗦,还是直接上代...原创 2019-03-20 21:29:54 · 896 阅读 · 0 评论 -
算法排序(一)——生成随机数组
由于博主最近想去面试了,需要重新复习下算法与数据结构,这里简单的整理下。目标:生成并返回一个含有n个整型元素,数值范围为left~right的数组;在这里自定义个SortUtil作为一个排序工具类实现过程:传入参数n,Left,Right。先声明一个数组大小为n的整型数组,循环将数组元素赋值为(int) (Math.random()*(Right-Left)+Left),其中Math....原创 2019-03-18 11:43:55 · 965 阅读 · 0 评论 -
算法排序(二)——选择排序法
目标:实现选择排序,将数组元素从小到大进行排序自定义方法selectionSort,传入参数为待排序数组array,返回排序完成后的数组。思路:使用i从0到array.length-1对数组进行遍历,遍历过程中,使用minIndex变量记录最小值下标,minIndex初始值为i;接着使用变量j对数组下标为i+1~array.length-1的元素进行遍历,遍历过程中对array[j]和ar...原创 2019-03-18 12:09:10 · 379 阅读 · 0 评论 -
算法排序(三)——插入排序法
目标:使用插入排序法对一个随机数组进行从小到大的排序插入排序法思想:类似于扑克牌的排序整理,从第2个数开始,和前面的一个数比较,如果比它小,交换两个数,然后再与前面一个数比较,类推。。。直到当前数比它之前的数更大时或者当前数已经是第一个数时,停止循环,接着对下一个数进行插入操作,重复上述过程,直到对最后一个数进行完了插入操作,排序完成。代码实现: //插入排序法 public...原创 2019-03-19 11:31:31 · 761 阅读 · 0 评论 -
算法排序(四)——冒泡排序法
目标:使用冒泡排序法对随机数组进行排序。冒泡排序思想:假设数组一共有n个元素,那么一共要进行n-1次循环,在每次循环里,定义变量j从下标0开始,与后面一个数进行比较,如果array[j]>array[j+1]则交换两个数,直到j==array.length-i-1,完成将最大数放到最后的任务,接着下轮循环;每次循环会将当前比较范围中最大的数值推送到最后并将比较范围减1,直到比较范围为1时...原创 2019-03-19 11:51:11 · 559 阅读 · 4 评论 -
算法排序(六)——快速排序法
快速排序法一般来说可以分为三种,分别是:①基础快速排序法②双路快速排序法③三路快速排序法下面分别对以上三种快排进行梳理。基础快速排序法排序思路:首先传入待排序数组,使用变量l表示数组下标起点,使用变量r表示数组下标终点,然后取数组第一个元素e做中介,使用循环逐步将数组元素分为比e小和不比e小的两部分;使用变量j记录左侧比e小的元素个数下标(初始值为l),循环内部使用变量i从...原创 2019-05-10 20:43:49 · 376 阅读 · 0 评论