1、 先从序列中取出一个数作为basic number。 2、将比此数大的元素放到它的右边,小于或等于它的元素放到它的左边。 3、对左右区间重复第二步,直到各区间只有一个数为止。 实验例子: 创建Tree结构体类型,里面有编号,树的高度。以高度为基准进行排序。 #include <iostream> #include <vector> #include <algorith...
size(); k++) nums[indx++]=couter[j][k]; } } } } int main() { vector<int> res{2,5,9,4,7,1,0,8,3,6}; print(res); cout<<"==="<<endl; //冒泡排序 // bubble(res); //选择排序 // selection(res); //插入排序 // insertSort(res); //希尔排序(希尔排序用到了插入排序...
首先将vector排序。然后使用unique,他可以将相邻的重复元素,全部放到vector后面,并且返回第一个重复数据的指针,最后将重复数据的元素,用erase删掉即可。 #include<iostream> #include<algorithm> #include<vector> using namespace std; vector<int> input; int n; int main() { cin>>n; for(int i=1;i<=n;...
public:voidPrint()override {std::cout<<"I am Derived2!\n";}; }; using SpBase =std::shared_ptr<Base>; using VecSpBase =std::vector<std::shared_ptr<Base>>;boolCmp(constSpBase& a,constSpBase& b){autoSwitchOrder = [](constSpBase& elem) ->int{if(dynamic_cast<Derived2*>(elem....
title: C++ vector排序 tags: c++,vector,排序 grammar_cjkRuby: true --- 每次都要重复造轮子...
voidswap(vector<int>&arr,inti,intj){inttemp=arr[i];arr[i]=arr[j];arr[j]=temp;}voidheapify(vector<int>&arr,inti,intlen){intleft=2*i+1;intright=2*i+2;intlargest=i;if(left<len&&arr[left]>arr[largest]){largest=left;}if(right<len&&arr[right]>arr[largest]){largest=right;}if(...
2. vector<pair >类型使用sort()函数 当pair 结合sort()类函数使用的时候, pair 默认对 first 升序,当 first 相同时对 second 升序(从小到大)。 也可以通过修改 cmp 函数达到对 second 进行排序,如下所示: vector<pair<int,int>> v; //默认排序规则sort(v.begin(), v.end()); ...
std::vector<int>&p2){returnp1[0]<p2[0];}// 主函数intmain(){std::vector<std::vector<int...
//使用现有的STL容器vector,6.0%,212ms//主要问题是min操作的时间复杂度是O(n)public:MinStack(){}voidpush(int x){stack.push_back(x);}voidpop(){if(stack.empty()){return;}stack.pop_back();}inttop(){if(stack.empty()){returnNULL;}returnstack.back();}intgetMin(){//遍历一次栈if(stack...