自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 保姆教学第四弹:希尔排序及其优化

希尔排序,是改进的插入排序。其核心思想是:给定一个间隔gap,按照这个间隔将待排序数组的数,跳着“取出来”,形成一个新待排序数组,然后对这个新数组进行插入排序。间隔缩小,重复上述过程,知道gap==1。希尔排序演示:假设间隔gap=4,第一轮然后,gap对半,gap=2,重复上述,直到gap==1,结束排序。我们开始写算法程序吧。首先,这个是改进的插入排序,我们先把插入排序写好。在插入排序的基础上,改进。#include<iostream>void swap(int a[],

2021-11-12 16:07:12 348

原创 保姆级教学第三弹:插入排序及其优化

插入排序核心思想:一个无序数组,将第一个数看做是有序的,将后面的数依次插入到前面有序数列,通过比较,插入到正确位置,从而形成新的有序数列。从他的核心思想中,我们可以提取出两个点。一是:将后面看做无序的数列,依次插入前面,这是第一层外循环,控制插入多少次,也就是后面有多少个数;二是:插入的时候,与前面有序数列进行比较,插入到正确位置,这是第二次内循环,控制要比较多少次才能插入到正确位置,也就是有序数列的个数。明白这两个点后,就可以着手开始写了。如果你不知道,怎么写这两次循环,像我上篇文字讲的一样,先从

2021-10-26 21:38:10 163

原创 保姆级教学第二弹:手把手教你写冒泡排序及其优化O(n)

冒泡排序按从小到大排序来讲,其实就是通过一遍遍循环,每一次,都把“最大”的数放到每一次循环的最后位置,待排序数列通过相邻两数比较再进行位置交换。而上一篇文章:选择排序,选择排序其实就是,每一次循环,把“最小”的数放到每一次循环的最前面,待排序数列永远与待排序队列的第一个位置的数进行比较,跳着进行交换(这也是为什么选择排序不稳定的原因)。冒泡排序核心,也就是比较两个相邻的元素,将值大的元素交换到右边。tips:对算法一筹莫展时,可以把算法里固定的功能,分解到方法里。对这个方法起个有意义的名字。然后在

2021-10-10 17:41:54 311 2

原创 保姆级教学:手把手教你写经典选择排序算法及其优化

此文章针对于小白中的小白,对于选择排序毫无思路,不知道怎么下手的。下面,我尽量展示我是怎么一步一步在大佬的指导下,写出排序算法的。秉持三个原则:由简单到复杂① 验证一步走一步 ②多打印中间结果先局部后整体先粗糙后精细①变量更名 ②语句合并 ③边界处理经典选择排序算法面对选择排序,不知道怎么下手,一筹莫展。定义一个数组,把他打印出来,总会吧。int arr[] = { 6,2,3,7,1,4,5,8,0 };//定义无序数组int length = sizeof(arr) / siz

2021-10-08 22:03:57 179 1

原创 两数之和

LeetCode之旅两数之和问题:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。解法一:暴力求解之线性查找这也是最容易想到的办法,对于我这个烂鸟来说,第一个想到的就是暴力求解,固定第一个数,一个一个匹配,以此类推,至枚举出所有答案,直到找到正确的answer。vector<int> twoSu

2021-03-29 17:14:27 102

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除