数据结构
Jasscical
github:github网址/jasscical
gitee:gitee网址/jasscical/
记录个人学习经历,积少成多,水到渠成。
展开
-
(排序算法)冒泡排序
冒泡排序: 我这里是将从小到大排序,所以每次将最小的数放到前面。 主要就是注意下标问题,别越界了。 #include <iostream> #include <vector> using namespace std; // 交换两个数 void swap(vector<int> &nums, int i, int j){ int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; } //.原创 2020-09-25 17:15:39 · 145 阅读 · 0 评论 -
(排序算法)直接插入排序
自己写个数组,按照代码走一遍,会更好理解~ 直接插入排序:两个指针i,j,i从数组第二个元素开始遍历数组的每一个元素,在遍历每个元素的时候,用j 遍历 i 之前的元素, 如果比原来nums[i](下标 i 对应数组值)小的,就进行元素后移,数组是没有删除元素这一说,本质只有覆盖原有元素,那么移动完后,就会空出一个位置(其实是有元素的,不要管),你只要把原来放到(覆盖)该位置即可。 #include <iostream> #include <vector> usi...原创 2020-09-25 15:29:06 · 180 阅读 · 0 评论 -
(排序算法)归并排序
这位大佬讲的很清晰,自己跟着实现了一遍C++版本的 B站--归并排序 我理解是: 分治:将数组分为左、右两半,然后对左右半再如此......直到不能再细分(分到只剩最后一个元素) 合并:两个部分内部是有序的,将它们合并 特别注意这个下标,一不小心就越界了,头皮发麻,特别是感觉自己思路没啥问题的时候------ #include <iostream> #include <vector> using namespace std; // 1.合并 void merg原创 2020-09-24 20:37:35 · 145 阅读 · 0 评论 -
(排序算法)堆排序
这里推荐一个讲的特别好的视频 B站堆排序 我学习了大话数据结构以及这个视频,自己写了一下,代码如下: #include<iostream> #include<vector> using namespace std; void swap(vector<int> &nums, int i, int j){ int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; } void heap_build原创 2020-09-21 19:35:46 · 200 阅读 · 1 评论 -
数组、链表各自的优缺点
1.数组 优点:随机访问快 缺点:插入删除比较慢 2.链表 优点:它允许快速的插入和删除 缺点:随机访问却比较慢原创 2020-06-15 21:54:32 · 191 阅读 · 0 评论