
算法初级
精品西红柿
这个作者很懒,什么都没留下…
展开
-
排序(左神初级)p3
排序稳定性:稳定的排序算法有:冒泡、插入、归并、桶排序不稳定的算法:快排、选择、堆排1.计数排序(只能排序正整数)1.计数排序不基于比较,准备max值+1个桶;2.遍历数组,数值为a时,把桶位置为a的数加一;3.重构数组。class Solution {public: vector<int> sortArray(vector<int>& nums) { int maxn=INT_MIN; ..原创 2020-08-13 16:50:08 · 141 阅读 · 0 评论 -
排序(左神初级)p2
前言:荷兰国旗问题给定一个数组arr,和一个数num,请把小于num的数放在数组的左边,等于num的数放在数组的中间,大于num的数放在数组的右边。要求额外空间复杂度O(1),时间复杂度O(N).这个问题已经描述的很清楚了,其思想就是设置左l、右r、当前cur三个指针,分别指向小于num的最后一个元素位置、小于num的最后一个元素位置、当前元素。若当前指向的元素小于num,则放置到左边,与l指针的后一个位置交换,l++、cur++;若等于num则跳过,cur++;若大于num,则放置原创 2020-08-11 23:02:13 · 182 阅读 · 0 评论 -
排序(左神初级)p1
1.冒泡排序(有序O(N),最差O(N^2),平均O(N^2) ,稳定)基本思想:外层循环控制次数,内层是两两比较,把每一轮未排定部分最大的元素放到了数组的末尾。 vector<int> sortArray(vector<int>& nums) { for(int i = 1;i < nums.size(); i++) {//i表示趟数,共n-1趟...原创 2020-08-10 21:26:44 · 136 阅读 · 0 评论 -
贪心算法p1(左神初级)
1.拼接所有的字符串产生字典序最小的字符串给定一个字符串的数组strs,请找到一种拼接顺序,使得所有的字符串拼接起来组成的字符串是所有可能性中字典序最小的,并返回这个字符串。首先引入比较器:(摘自如何自定义sort函数中的比较函数)1)比较器的定义:(当然可以更复杂的实现)函数比较器bool myfunction (int i,int j) { return (i<j); }或者:函数对象比较器struct myclass { bool operator() (int原创 2020-08-10 11:14:45 · 297 阅读 · 0 评论