面试
文章平均质量分 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 · 2034 阅读 · 0 评论 -
十大排序算法(C++)(时间复杂度O(nlogn)篇:希尔排序、堆排序、快速排序、归并排序)
希尔排序 希尔排序本质上是对插入排序的一种优化,它包括了插入排序的简单,同时解决了插入排序每次只交换相邻两个元素的缺点。插入排序过程如下: 1.将数组按照一定的间隔分为多个子数组(每跳跃一定间隔取一个值组成一组),每组分别进行插入排序。 2.缩小间隔进行下一轮排序。最后一轮排序时,间隔为 1,也就等同于于直接使用插入排序。由于前面的排序,现在数组已经基本有序了,此时的插入排序只需进行少量的交换即可完成。 举个例子:对数组【2,16,8,1,8,4,7,13,20,3】。 第一...原创 2022-02-21 11:20:20 · 4456 阅读 · 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 · 1318 阅读 · 0 评论
分享