随笔分类 -  数据结构与算法

摘要:问: 有10G的订单数据,希望订单金额(假设都是正整数)进行排序,但我们内存有限,只有几百MB,如何进行排序? 答: 因内存有限,需要排序的数据量巨大,所以,此时需要外部排序,外部排序采用的是一种分治思想,外部排序最常用的是多路归并排序,即将大数据切成多份一次可以载入内存的小数据,对小数据进行内存排 阅读全文
posted @ 2023-12-29 23:16 牛犁heart 阅读(32) 评论(0) 推荐(0) 编辑
摘要:因该方法实现与之前记录的不同,就想着记录下。。。 重点inplace_partition函数的实现 注意:迭代器范围都是左闭右开的区间 std::iter_swap(last_greater, --first_equal); if(comp(*last_greater, pivot)) { std: 阅读全文
posted @ 2022-05-08 19:02 牛犁heart 阅读(25) 评论(0) 推荐(0) 编辑
摘要:如何实现浏览器的前进、后退功能?其实,用两个栈就可以非常完美地解决这个问题。 使用两个栈,X 和 Y,我们把首次浏览的页面依次压入栈 X,当点击后退按钮时,再依次从栈 X 中出栈,并将出栈的数据依次放入栈 Y。当我们点击前进按钮时,我们依次从栈 Y 中取出数据,放入栈 X 中。当栈 X 中没有数据时 阅读全文
posted @ 2022-05-02 19:20 牛犁heart 阅读(433) 评论(0) 推荐(0) 编辑
摘要:###引入 看个例子: // array表示一个长度为n的数组 // 代码中的array.length就等于n int[] array = new int[n]; int count = 0; void insert(int val) { if (count == array.length) { i 阅读全文
posted @ 2022-04-16 21:28 牛犁heart 阅读(80) 评论(0) 推荐(0) 编辑
摘要:算法复杂度 1、冒泡排序 冒泡排序(Bubble sort),他重复的走访要排序的数列,一次比较两个元素,如果顺序错误,就将它们交换位置。无论是最坏时间复杂度还是平均时间复杂度都为O(n^2),但算法稳定 算法步骤: 1、比较相邻的两个元素,如果第一个比第二个大,就交换,对每一对相邻元素做同样的工作 阅读全文
posted @ 2020-04-05 22:45 牛犁heart 阅读(759) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示