1 void quick_sort(int q[], int l, int r) 2 { 3 if (l >= r) return; 4 5 int i = l - 1, j = r + 1, x = q[l + r >> 1]; 6 while (i < j) 7 { 8 do i ++ ; wh ...
分类:
编程语言 时间:
2020-05-12 00:03:55
阅读次数:
84
快速排序(QuickSort)划分的关键是要求出基准记录所在的位置pivotpos,编程时候的关键点 快速排序: 既然能把冒泡KO掉,马上就激起我们的兴趣,tnd快排咋这么快,一定要好好研究一下。 首先上图: 从图中我们可以看到: left指针,right指针,base参照数。 其实思想是蛮简单的, ...
分类:
编程语言 时间:
2020-05-10 17:02:28
阅读次数:
89
什么是广度优先搜索? 如果只是是背概念,幼儿园的小朋友都能背下来念给你听。 假设看这篇文章的都和我一样是个前端工程师,我们要从广度优先搜索(BFS)中学到什么?如果你看完这篇文章能够回答这个问题,那么你已经看懂了。 广度优先搜索不是排序算法,它和快速排序、选择排序、冒泡排序等不一样,你听过二分查找吗 ...
分类:
编程语言 时间:
2020-05-08 16:08:39
阅读次数:
69
一、Java语言实现 二、python语言实现 ...
分类:
编程语言 时间:
2020-05-08 09:32:27
阅读次数:
66
快速排序(ES6) function qSort(arr){ if(arr.length <= 1){return arr} const mVal = arr.shift() //这是基准数,比这小的放左边数组, 比这大的放在右边 let [left, right] = [[], []] arr.f ...
分类:
编程语言 时间:
2020-05-05 19:57:20
阅读次数:
115
题目描述: 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明: 必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。 思想:借助快速排序思想 参考快速排序的思想,快速排序 ...
分类:
移动开发 时间:
2020-05-03 00:50:31
阅读次数:
74
Arrays类 Arrays类概述 针对 数组 进行操作的工具类 提供了 排序,查找 等功能 Arrays类常用方法 toString()方法 toString()方法的源码 sort()方法 (七种基本数据类型(除了boolean) + 引用类型) 内部是使用快速排序,默认从小到大。 binary ...
分类:
编程语言 时间:
2020-05-02 21:20:55
阅读次数:
78
排序算法 一、算法核心思想分类 根据算法的核心思想,可以将十大排序算法分为两类: 1. 比较排序 常见的快速排序、归并排序、堆排序、冒泡排序等属于比较排序。 在排序的最终结果里,元素之间的次序依赖于它们之间的比较。每个数都必须和其他数进行比较,才能确定自己的位置。 2. 非比较排序 计数排序、基数排 ...
分类:
编程语言 时间:
2020-05-02 18:50:31
阅读次数:
93
快速排序算法本质上是通过把一个数组划分为两个子数组,然后递归的调用自身为每一个子数组进行快速排序来实现的。 这里首先讲递归的快速排序算法。 1.递归的排序算法 public void recQuickSort(int left, int right){ if(right-left<=0){ //如果 ...
分类:
编程语言 时间:
2020-05-01 23:55:50
阅读次数:
127
统计大串中小串出现的次数(新的解决方案) StringBuffer类 StringBuffer类的概述 我们如果 对字符串进行拼接操作 ,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。而 StringBuffer 就可以解决这个问题。 线程安全的可变长度的字符序列 StringBu ...
分类:
编程语言 时间:
2020-05-01 20:55:58
阅读次数:
72