数据结构和算法
打不死的黄妖精
这个作者很懒,什么都没留下…
展开
-
C++中lambda 表达式、unique()、stable_sort()、find_if()、find_each()的综合使用
问题:在vector<string>找出所有长度大于等于4的元素。方法如下:#include <iostream>#include <array>#include <vector>#include <algorithm>#include <list>#include <deque>#include <numeric>#include <forward_list>usin..转载 2020-06-26 14:15:52 · 647 阅读 · 0 评论 -
C++中stable_sort和sort的区别
stable_sort的用法与sort一致,区别是stable_sort函数遇到两个数相等时,不对其交换顺序;这个应用在数组里面不受影响,当函数参数传入的是结构体时,会发现两者之间的明显区别;查找和排序题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩都按先录入排列在前的规则处理。例示:jack70peter96Tom70smith67从高到低成绩...转载 2020-06-26 13:22:48 · 725 阅读 · 0 评论 -
腾讯2020秋招笔试真题——4.求最小非零元素
【题目描述】Q哥给了小Q一个长度为n正整数序列ai。Q哥要求小Q重复以下操作步骤k轮:1、发现最小的非零元素x。2、打印x。3、将序列中所有非零元素减x。小Q把这个艰巨的任务交给了你,希望你能帮帮他。输入描述输入包括两行。第一行包括两个正整数n和k(1<=n,k<=105)。第二行包括n个正整数ai(1<=ai<=109)。输出描述输出k行,即每轮中的最小非零整数(如果到某轮所有元素都是0,打印0即可)。示例1输入127 55 8 10 3 6 10原创 2020-06-25 21:09:35 · 378 阅读 · 0 评论 -
算法和数据结构之——归并排序
归并排序(Merge Sort)和选择排序一样,归并排序的性能不受输入数据的影响,但表现比选择排序好的多,因为始终都是O(n log n)的时间复杂度。代价是需要额外的内存空间。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并排序是一种稳定的排序方法。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。//step2:从下往上归并void原创 2020-06-24 19:55:24 · 113 阅读 · 0 评论 -
算法和数据结构之——对链表进行插入排序
插入排序一般分为两种,对数组进行插入排序和对链表进行插入排序,对数组进行插入排序比较简单,其代码如下://对数组进行插入排序void insertSort(vector<int> nums){ for (int i = 0; i < nums.size(); i++){ for (int j = i; j>0; j--){ if (nums[j] < nums[j - 1]){ int temp = nums[j]; nums[j] = nums原创 2020-06-24 15:05:42 · 206 阅读 · 0 评论