排序算法
weixin_45794299
这个作者很懒,什么都没留下…
展开
-
function
1、绑定一个函数#include <iostream>#include <string.h>#include <string>#include <vector>#include <algorithm>#include <map>#include <stack>#include <set>#include <functional>#include <iostream>u原创 2022-03-10 22:28:12 · 75 阅读 · 0 评论 -
leetcode-204. 计数质数-埃氏筛-一个质数 x,从 x⋅x 开始标记 x⋅x +x一定为非质数,因此dp标记为0
一、题目二、思路1、创建一个辅助数组,1表示质数,0表示非质数2、一个质数 x,从 x⋅x 开始标记 x⋅x +x一定为非质数,因此dp标记为0三、代码class Solution {public: int countPrimes(int n) { //创建一个辅助数组,1表示质数,0表示非质数 vector<int>dp(n+1,1); int sum=0; for(int i=2;i<n;++i){原创 2022-03-10 12:08:04 · 74 阅读 · 0 评论 -
leetcode-152. 乘积最大子数组-同时维护最大正数和最小负数
一、题目二、思路1、//原本,dp[i]=max(dp[i-1]*nums[i],nums[i]);2、现在,加了负数后,求最大的值,最小的值3、同时维护一个最大值和最小值三、代码class Solution {public: int maxProduct(vector<int>& nums) { //比较三个数 int size=nums.size(); int Max_num=nums[0],Min_num=nu原创 2022-03-10 09:19:22 · 270 阅读 · 0 评论 -
leetcode-583. 两个字符串的删除操作-通过删除任意字符串使两个字符串匹配相等-求最少操作数
一、题目二、思路三、代码class Solution {public: int minDistance(string word1, string word2) { int len_1=word1.length(); int len_2=word2.length(); vector<vector<int>>dp(len_1+1,vector<int>(len_2+1,0)); for(int原创 2022-03-09 23:12:38 · 218 阅读 · 0 评论 -
leetcode-寻找第K大-快速排序(堆排序)
一、题目题目描述有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。示例1输入[1,3,5,2,2],5,3返回值2二、思路1、快速排序的思路2、在快排的基础上加上终止条件,判断一次排完后k的值与两个指针相遇那个点的大小,如果k大,则说明那个点的左右两边都需要再排序;如果相等直接返回数组索引的那个值;如果k小,则说明只需要对右边部分排序;如果这样都没有找到一个相等的,则整个原创 2021-05-20 21:23:17 · 382 阅读 · 0 评论 -
web服务器升序链表定时器
#ifndef LST_TIMER#define LST_TIMER#include <unistd.h>#include <signal.h>#include <sys/types.h>#include <sys/epoll.h>#include <fcntl.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h原创 2022-03-09 00:10:00 · 283 阅读 · 0 评论 -
插入排序-堆排序-选择排序-归并排序-冒泡排序
一、插入排序void InsertSort(vector<int>&res){ int size=res.size(); for(int i=0;i<size;++i){ for(int j=i;j>0;--j){ if(res[j]<res[j-1]){ swap(res[j],res[j-1]); } else{原创 2022-02-19 22:34:06 · 153 阅读 · 0 评论 -
快速排序-完整实现-快排-递归-非递归
一、思路1、采用递归方法,然后采用两个指针移动的方法2、快速排序思路:第一步:选定一个初始值(一般为第一个);第二步:从右边开始找起,找到第一个比初始值低的值,将两个交换第三步:从左边开始找起,找到第一个比初始值高的值,将两者交换第四步:当两个指针相遇的时候,第一轮快排完成第五步:递归,传入数组,开始的两个指针二、代码#include <iostream>#include <string>#include <vector>#include <原创 2021-05-20 21:00:29 · 179 阅读 · 0 评论