数据结构与算法
fjhblog
欢迎交流
展开
-
快速排序
快速排序主要采用分治的思想。假设对一个数组arr[l…r]进行快速排序,采用分治思想可以分为三分:分解:选取一个主元,假设它的索引位置为q,将arr[l…r]以q为分割点分割为两个(可能为空)子数组arr[l…q-1]和arr[q+1…r],使得arr[l…q-1]这部分的元素都小于arr[q],而arr[q+1…r]这部分的元素都大于arr[q],同时在划分的过程中也要计算出分割点q。解决:通过递原创 2017-08-14 16:59:44 · 182 阅读 · 0 评论 -
将数组的0元素都移动到最后
给定一个整数的数组,要求将数组中的所有的0元素移动到数组的最后,其他的元素保持原来的顺序。要求:空间复杂度不能超过O(1)example:给定数组[0,2,0,7]转换后应为[2,7,0,0]输入:第一行输入一个数位数组的长度其他的数为数组中元素。分析:该题目的难点在于将非0的元素移动到数组的前端的时候必须要保持数组原来元素的顺序。我们可以看出0元素是确定的元素,我们可以统计0元素的个数之后,我们...原创 2018-03-30 18:58:01 · 4192 阅读 · 1 评论