![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础算法
Wu面
这个作者很懒,什么都没留下…
展开
-
基础排序法之冒泡排序
基础排序法之冒泡排序 什么是冒泡排序? 冒泡排序的英文Bubble Sort,是一种最基础的交换排序。 相信大家都见过气泡从水里冒起来的过程,小气泡一点一点向上浮动,随着浮动气泡也越来越大。冒泡排序之所以叫冒泡排序,正式因为这种排序方式的每一个元素就像气泡一样,一点一点向数组的一侧移动。 冒泡排序的思想,我们要把相邻的元素两两比较,根据大小来交换元素的位置,每次只能得出一个位置,因此排序需要n-1...原创 2019-09-09 17:16:40 · 128 阅读 · 0 评论 -
基础排序法之选择排序
选择排序与冒泡排序类似,为哈这么说呢,冒泡排序是相邻的两个元素两两相比较,而选择排序则是用一个元素与其后面的所有元素依次相比较,记录下标,至本次循环结束相对应的两个元素进行位置互换。 空间复杂度:在原序列进行操作,故为 O( 1 ); 时间复杂度:需要 2 次循环遍历,故为 O( n * n ); 代码如下: import java.util.Arrays; public class 选择排序 ...原创 2019-09-11 15:02:26 · 142 阅读 · 0 评论 -
基础排序法之插入排序
什么是插入排序呢? 插入排序就像玩纸牌,一个元素一个元素的来,把当前的这各元素插入到已经排序好的数组中的合适的位置,但插入元素的位置后的所有元素都需向后移动一位。 与选择排序的异同: 选择排序是相邻的元素两两比较,比较完后再进行交换,插入排序是从第二个数开始,依次往后移动一个元素的位置,并且与该位置之前的元素依次比较直至找到属于自己的位置 算法步骤 将第一待排序序列第一个元素看做一个有序序列,把第...原创 2019-09-11 17:57:26 · 98 阅读 · 0 评论 -
基础排序法之归并排序
归并排序 过程:一个数组,分成两个序列,通过递归(排序的方式)将左部分的值排好,再将右部分的值排好,左右两边排好后,再将两边的数据拿出来统一排好,即将两个有序数列合并为一个有序数列; 图画演示: 1、分散(从整到零) 将原始序列一刀切开,划分成两个序列。然后每个序列继续切开,又划分成两个更小的序列。 这样一层层地划分,可以得到一颗划分的树,树的叶子节点就是原始序列的每个元素了。 2、合并(从零到...原创 2019-09-18 16:09:41 · 145 阅读 · 0 评论 -
基础排序法之快速排序
什么是快速排序呢? 同冒泡排序一样,快速排序也属于交换排序,通过元素之间的比较和交换位置来达到排序的目的。 不同的是,冒泡排序在每一轮只把一个元素冒泡到数列的一端,而快速排序在每一轮挑选一个基准元素,并让其他比它大的元素移动到数列一边,比它小的元素移动到数列的另一边,从而把数列拆解成了两个部分。 该方法的基本思想是:是分冶,再通过递归将元素不停的分组(重复上述步骤),直至剩下一个元素返回; 1.先...原创 2019-10-03 08:56:52 · 152 阅读 · 0 评论