
排序
西柚四季春
不忘初心,不惧未来,勇往直前
展开
-
归并排序代码实现
归并排序代码实现与详解归并排序介绍:归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治策略(分治法将问题分成一些小的问题然后递归求解,而治的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。代码实现(java)// 合private static void merge(int[] nums, int left, int mid, int right) { int l1 = mid + 1; int[] tmp = new int[nums.原创 2021-03-01 11:12:40 · 3062 阅读 · 0 评论 -
快速排序代码实现与详解
快速排序代码实现与详解什么是快速排序快速排序(QuickSort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列.也就是说:在数组中先找一个基准元素,然后两个指针分别从最左边和最右边遍历,把小于基准元素的值放在其左边,大于的放在右边;这个过程就是将两个指针指向的不满足该条件的元素 交换位置即可。代码实现(java 递原创 2021-02-15 11:22:40 · 2595 阅读 · 1 评论 -
详细图解希尔排序+代码实现
希尔排序详解与代码实现1.简单介绍希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序;它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序。看希尔排序前,建议先弄懂插入排序。关于插入排序可以看博主的这篇文章:https://blog.youkuaiyun.com/ltf971101/article/details/1137674342.基本思想希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越原创 2021-02-09 17:07:03 · 405 阅读 · 0 评论 -
插入排序代码实现与详解
插入排序代码实现与详解1.基本思想插入排序(Insertion Sorting)的基本思想是:把n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。2.明确首先要明确,当有n个元素时,则需要n-1次插入,为什么是n-1呢 因为初始有序表只有一个元素时,这个元素不需要进行比较插入。之后的n-1个元素才需要在有序表中进行原创 2021-02-09 10:49:12 · 4050 阅读 · 0 评论 -
选择排序的代码实现与详解
选择排序的代码实现与详解基本思想以从小到大排序为例:第一次循环找出n个数中最小的数与arr[0]进行交换,第二次从arr[1]到arr[n-1]中选择一个最小的再与arr[1]交换,以此类推最多进行n-1轮循环即可使序列有序。代码实现(Java实现,代码只是工具关键是思路 (从小到大))private static void selectSort(int [] nums){ int n = nums.length; for (int i = 0; i < n-1; i++) {原创 2021-02-08 15:09:45 · 4723 阅读 · 0 评论 -
冒泡排序代码实现与详解
冒泡排序代码实现与详解基本思想冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后,依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前向后移动,就像水底下的气泡一样逐渐向上冒。在讲解代码之前首先要明确1.冒泡排序是相邻元素之间这样比较,逆序就交换两个元素,以从小到大排序为例,那么经过一次循环,最大的元素一定就到了序列最后的位置(也就是说 一趟循环 就能确定一个元素的最终位置);那么n个数需要n-1次循环就能确定所有数的位置。为什么是n-1次循环呢? 因为一次原创 2021-02-08 13:38:57 · 2836 阅读 · 0 评论