排序算法
超爱喝酸奶丶
这个作者很懒,什么都没留下…
展开
-
排序算法——基数排序(桶排序)
原创 2020-07-24 00:35:37 · 75 阅读 · 0 评论 -
排序算法——归并排序
原创 2020-07-23 14:52:30 · 78 阅读 · 0 评论 -
排序算法——快速排序
快速排序是个人认为到现在为止有点思考的算法。实现方法很多,但是从本质上来说是一样的(这里的排序都是按由小到大排序)。 确定一个基数,比基数小的放基数的左边,比基数大的放基数的右边,然后对左右在进行递归。 下面说下思路: 我就不画图了,以后能看懂就看懂。看不懂自己百度去 比如给定一个数组[101,34,119,1,2,1000,-1] 假设数组最左边的为base(101) 然后指定两个指针,分别指向left(101),right(-1) 左边的指针向右移动 右边的指针向左移动 也就是两个指针往中间靠拢 右边指原创 2020-07-22 19:15:48 · 92 阅读 · 0 评论 -
排序算法——希尔排序
就先不写心得了,等哪天自己看不懂自己的代码了再来写吧。原创 2020-07-22 15:12:03 · 78 阅读 · 0 评论 -
排序算法——插入排序
, 这步相当于逐渐扩展需要排序的个数,一开始数组中的个数只有一个,就是101,然后判断这个数字和前面的数字比较,看前面的数字是否比后面的数字大即arr[i]<arr[i-1]是否成立,如果成立的话,就将后面的数字即arr[i]存到临时变量中,然后遍历这个数组(小的那个数组,不是全部数组),将数组中的每个数据和temp比,如果比它大的话,就将这个数据往前挪一位,直到有一个数字比它小了,就放在那个位置,相当于为这个数字找一个合适的位置。 语言表达能力有限,代码敲出来debug一下就能很明白了。 ...原创 2020-07-22 12:42:47 · 94 阅读 · 0 评论 -
排序算法——选择排序
插入排序的大致思路 假设我们是按从小到大的顺序排列的 我们先从数据中找出最小值,将这个最小值放在第一个,然后从剩下的数据中找出最小值,将最小值放在第二个,以此类推,完成排序 第一次排序: 假设最小值就是arr[0],然后遍历数组,如果发现比arr[0]还小,就记录这个下标help,然后将falg置为true,表示最后要交换数据,遍历到最后找到了这个最小值,提出下标,将最小值和arr[0]交换,完成第一次排序 第二次排序: 这次从第二个数字开始,也就是从arr[1]开始,假设arr[1]为最小值,然后按照上.原创 2020-07-21 23:25:42 · 130 阅读 · 0 评论 -
排序算法——冒泡排序
非常简单的排序,简单说下思路 比如有一个数组[3,9,-1,10,-2] 准备两个指针 第一个指向第一个数字,第二个指向相邻的数字,然后比较,如果是逆序的话就交换。然后两个指针都前进一位,直到最后一个数字,第一轮排序就排完了 上面的图是错误的,第一次指到最后一个,最后一位数字应该是最大的,10 。 然后进行第二轮排序,因为第一轮已经确认的最大的数字,所以第二轮只需要指到倒数第二个就好了,依次类推,所以上面这个数组一个要进行4次排序 第一次排序,指针移4次 第二次排序,指针移3次 第三次排序,指针移2次原创 2020-07-21 22:39:13 · 99 阅读 · 0 评论