![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
文章平均质量分 83
feng之锋
去互联网大厂搬砖!
展开
-
希尔排序算法(基于Java实现)
title: 希尔排序算法(基于Java实现)tags: 希尔排序算法希尔排序算法的原理与代码实现:一、希尔排序算法的原理因为在简单插入排序中可能会存在这样的问题,例如,我们将数组arr=[2, 3, 4, 5, 6, 1]进行排序,如果我们采用的是简单直接插入排序算法,就会发现最后一位的数字1需要移动的次数就是arr.length - 1次。这样明显就会降低排序的效率。因此,希尔排序就是为了解决这样的问题,提高直接插入排序算法的效率,应运而生的。希尔排序的原理:希尔排序也是一种插入排序,它.原创 2020-12-26 10:30:46 · 176 阅读 · 0 评论 -
基数排序算法(基于Java实现)
title: 基数排序算法(基于Java实现)tags: 基数算法基数排序算法原理及代码实现:一、基数排序算法的原理基数排序属于“分配式排序”,又称“桶子法”。顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,最终达到排序的作用。基数排序的基本思想: 将所有带比较的数值统一为同样的数位长度,数位较短的数前面补零。然后从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后,数列就变成了一个有序序列。举例说明:第一轮排序的时候,是将每个元素的个位数取出.原创 2020-12-24 15:21:54 · 163 阅读 · 0 评论 -
冒泡排序算法(基于Java实现)
title: 冒泡排序算法(基于Java实现)tags: 冒泡排序算法冒泡算法原理及代码实现:一、冒泡算法的原理冒泡算法只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求。如果不满足就让它俩互换。这样一来,一次冒泡会让至少一个元素移动到它应该在的位置,重复n次,就完成了n个数据的排序工作。例如,我们要对一组数据4,5,6,3,2,1从小到大进行排序。第一次的冒泡操作的详细过程就是这样:可以看出,经过一次冒泡操作之后,6个元素已经存储在正确的位置上。要想.原创 2020-12-23 11:21:54 · 6684 阅读 · 5 评论 -
选择排序算法(基于Java实现)
title: 选择排序算法(基于Java实现)tags: 选择算法选择排序算法原理及代码实现:一、选择排序算法的原理选择排序算法的实现思路有点类似插入排序,也分已排序区间和未排序区间。但是选择排序每次会从未排序区间中找到最小的元素,将其放到已排序区间的末尾。二、选择排序算法的代码实现package com.company;import java.util.Arrays;public class SelectionSort { public static int[] sel.原创 2020-12-23 11:17:13 · 214 阅读 · 3 评论 -
插入排序算法(基于Java实现)
title: 插入排序算法(基于Java实现)tags: 插入算法插入排序算法原理及代码实现:一、插入排序算法的原理首先,我们将数组中的数据分为两个区间,已排序区间和未排序区间。初始已排序区间只有一个元素,就是数组的第一个元素。插入算法的核心思想是取未排序区间中的元素,在已排序区间中找到合适的插入位置将其插入,并保证已排序区间数据一直有序。重复这个过程,直到未排序区间中元素为空,算法结束。如图所示,要排序的数据是 4,5,6,1,3,2,其中左侧为已排序区间,右侧是未排序区间。插入排序也包.原创 2020-12-23 11:07:02 · 2919 阅读 · 1 评论 -
归并排序算法(基于Java实现)
title: 归并排序算法(基于Java实现)tags: 归并算法归并排序算法的原理与代码实现:一、归并排序算法的原理其核心思想其实蛮简单的,就是如果我们要排序一个数组,我们先数组从中间分成前后两部分,然后对前后两部分分别排序,然后再将排好序的两部分合并在一起,这样整个数组就都有序了。总而言之,归并排序使用的就是分治思想,顾名思义,就是分而治之,将一个大问题分解成小的子问题来解决。小的子问题解决了,大问题也就解决了。而分治算法一般都是用递归来实现的,分而治之是一种解决问题的处理思想,递归则是一种.原创 2020-12-22 10:00:00 · 231 阅读 · 1 评论 -
桶排序算法(基于Java实现)
title: 桶排序算法(基于Java实现)tags: 桶排序算法桶排序算法的原理和代码实现一、桶排序算法的原理桶排序,顾名思义,会用到“桶”,核心思想是将要排序的数据分到几个有序的桶里,每个桶里的数据再单独进行排序。桶内排完序之后,再把每个桶里的数据按照顺序依次取出,组成的序列就是有序的了。利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定。桶排序 (Bucket sort)的工作的原理:假设输入数据服从均匀分布,将数据分到有限数量的桶里,每个桶再分别排序(有可能再使用别的排序算.原创 2020-12-19 23:02:20 · 276 阅读 · 3 评论 -
快速排序算法(基于Java以及golang实现)
title: 快速排序算法(基于Java实现)tags: 快速排序算法快速排序算法的原理与代码实现:一、快速排序算法的原理快排算法的思想是: 如果需要排序数组中下标从p到r之间的一组数据,我们选择p到r之间的任意一个数据作为pivot(分区点)。我们遍历p到r之间的数据,将小于pivot的放到左边,将大姨pivot的放在右边,将pivot放到了中间。经过这样的操作之后,数组中的数据就被分成了三个部分了,前面的p到q-1之间的都是小于pivot的,中间是pivot,后面的q+1到r之间是大于piv.原创 2020-12-17 22:03:53 · 221 阅读 · 1 评论