面试
文章平均质量分 76
zhongh58
这个作者很懒,什么都没留下…
展开
-
智能指针(unique_ptr、shared_ptr、weak_ptr)
主要参考链接:C++ 智能指针最佳实践&源码分析参考链接:C++11 make_shared - 简书智能指针在 C++11 标准中被引入真正的标准库(C++98 中引入的 auto_ptr 存在较多问题)为什么需要智能指针?解决动态内存分配时的内存泄露问题。auto_ptr(C++98的方案,C++11已经抛弃)auto_ptr<string> p1 (new string ("abc")); auto_ptr<string> p2.原创 2022-03-07 17:49:50 · 1909 阅读 · 0 评论 -
十大排序算法(C++)(时间复杂度O(nlogn)篇:希尔排序、堆排序、快速排序、归并排序)
希尔排序希尔排序本质上是对插入排序的一种优化,它包括了插入排序的简单,同时解决了插入排序每次只交换相邻两个元素的缺点。插入排序过程如下:1.将数组按照一定的间隔分为多个子数组(每跳跃一定间隔取一个值组成一组),每组分别进行插入排序。2.缩小间隔进行下一轮排序。最后一轮排序时,间隔为 1,也就等同于于直接使用插入排序。由于前面的排序,现在数组已经基本有序了,此时的插入排序只需进行少量的交换即可完成。举个例子:对数组【2,16,8,1,8,4,7,13,20,3】。第一...原创 2022-02-21 11:20:20 · 4249 阅读 · 0 评论 -
十大排序算法(C++)(时间复杂度O(n^2)篇:冒泡排序、选择排序、插入排序)
冒泡排序冒泡排序的核心思想是:从头开始,依次比较数组中相邻的2个元素,将最大值/最小值交换到最后一位。void bubbleSort(vector<int>& nums) { for(int i=0;i<nums.size()-1;i++) { for(int j=0;j<nums.size()-1-i;j++) if(nums[j]>nums[j+1]) { int te..原创 2022-02-17 11:56:26 · 1178 阅读 · 0 评论