摘要: 插入排序的基本思想是:将数组的第一个数认为是有序数组,从后往前(从前往后)扫描该有序数组,把数组中其余n-1个数,根据数值的大小,插入到有序数组中,直至数组中的所有数有序排列为止。这样的话,n个元素需要进行n-1趟排序!!! 举个例子:4个数字4,6,7,5进行从大到小的排序。前插排序法具体过程如下 阅读全文
posted @ 2020-03-18 22:34 Swithun 阅读(139) 评论(0) 推荐(0)
摘要: 通过前面的快速排序算法我们基本上已经知道,它是通过两个标记点把左边分为大于首元素的部分,右边为小于首元素的部分。然后又再给左右两边用快速排序。 然后现在我们提出一个问题,如果任意给定的一个数组,我们现在要找出它里面第几大的元素。这时该怎么办?先排序吗?你要知道就算是快速排序的复杂度也是nlogn。那 阅读全文
posted @ 2020-03-18 22:25 Swithun 阅读(522) 评论(0) 推荐(0)
摘要: 归并排序其实就把数组分成两个部分,然后进行递归,依次排序。 其实一直分的话,最后数组会被分为2个2个一组的数组,他们之间的排序就非常简单了。 假设现在有一个数组[32,12,56,78,76,45,36] 从下向上来看,每次排序完后再合并,分而治之。 上代码!!! #include <stdio.h 阅读全文
posted @ 2020-03-18 21:51 Swithun 阅读(248) 评论(0) 推荐(0)
摘要: 关于快速排序,首先我们不展开讲解,我们先给定一组数组[72,6,57,88,60,42,83,73,48,85]对它来进行排序(你只用跟着我思路来就行了,后面你就会慢慢懂快速排序) 首先我们设置一个两个标记点i,j。i标记要排序的数组的首位置,j标记要排序的数组的末位置。然后拿一个X值去记录一下数组 阅读全文
posted @ 2020-03-18 11:06 Swithun 阅读(163) 评论(0) 推荐(0)