12. 基础数据结构和算法
文章平均质量分 58
。。
Lzg_na
这个作者很懒,什么都没留下…
展开
-
字符串hash算法
【代码】字符串hash算法。原创 2024-08-02 09:27:19 · 422 阅读 · 0 评论 -
base64和base64url编解码
一个字节可以表示256种数值,但是由于一些字节在网络中有特殊的含义。所以当传输字节内容时就不能传输这些具有控制功能的字符。具体的做法就是将这些字符进行转码。ASCII中是可打印字符,所以可以将要传输的字符转码为这个范围内的字符。base64编码就是将255种字节转换为64种进行传输;base64url编码也是将255种字节转换为64种进行传输,与base64选择的字符稍有不同.原创 2023-01-07 16:58:03 · 1339 阅读 · 0 评论 -
加密和解密
加密分为和双向解密又大致分为和:加密和解密是使用的同一个,:加密和解密使用的密钥不相同,加密使用私钥,解密使用公钥,必须配对使用。原创 2022-07-04 00:24:25 · 977 阅读 · 0 评论 -
1、归并排序
###本来写了一大堆,一粘贴代码都没了,不想写了,直接来代码#include<iostream>#include<vector>#include<time.h>#include<algorithm>using namespace std;void merge(vector<int> &nums, int start, int mid, int end, vector<int> &temp){ if (sta原创 2020-06-10 10:30:34 · 162 阅读 · 0 评论 -
数据结构用C++实现堆排序
堆排序对于一个数组,总能用完全二叉树的方式去理解他,例如对于数组,536604248可以表示为完全二叉树如下536604248初始化堆堆就是,root节点总是比他的两个子节点的值要大,从最后一个非叶子节点(len/2-1)开始进行堆调整,本例是从第二个6开始,其下标正好也必然是len/2-1,若发现其子节点有大于当前节点的,则将最大的子节点与当前节点进行交换,进行一步交换形成二叉树:536804246当然实际上是数组中数的值在改变。需要注意的是,在调整的过程原创 2020-06-10 16:39:23 · 280 阅读 · 0 评论 -
C++实现快速排序
#include<iostream>#include<vector>#include<time.h>#include<algorithm>using namespace std;void Quick_Sort(vector<int> &nums, int start, int end){ if (start<end){ int left = start, right = end, key = nums[start];原创 2020-06-21 17:01:18 · 101 阅读 · 0 评论 -
链表的归并排序
ListNode* sortList(ListNode* head) { if(head==NULL||head->next==NULL) return head; ListNode* slow=head,*fast=head,*pre=head; while(fast&&fast->next){ pre=slow;//pre是slow前一个原创 2020-08-27 21:34:35 · 80 阅读 · 0 评论 -
主要排序算法
1. 插入排序2. 选择排序3. 冒泡排序4. 归并排序5. 希尔排序6. 快速排序7. 堆排序8. 桶排序原创 2021-12-25 18:47:51 · 169 阅读 · 0 评论 -
c++实现希尔排序
#include<iostream>#include<vector>#include<time.h>#include<algorithm>using namespace std;void insert_sort(vector<int> &arr){//插入排序 for (int i = 1; i < arr.size(); ++i){ int temp = arr[i]; int pos = i; for (i原创 2020-06-21 17:03:23 · 166 阅读 · 0 评论