![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
包括算法、图、树等
Deapou
这个作者很懒,什么都没留下…
展开
-
快速排序
简介:快速排序可以说是归并排序的进阶版,它的主要思想就是找一个”对照物“,一般是数组的第一个元素(因为这样操作简单),然后从头尾开始,每个元素和这个”对照物“比较,比如说:将第一个数字“5” 和最后一个数字”9“对比,因为9比5大,所以9就放在5的右边(即不操作)然后将指向9的指针 减一 变成 指向0然后继续比较5和0,这时发现0是比5小的,就直接交换5和0的位置(然后指向0位置的指针,就加一指向了2):这个时候,右边的比较就结束了,就要开始从左往右比了,即2和5比较,如果因为2比5小,所以指向原创 2021-02-21 15:13:12 · 99 阅读 · 0 评论 -
选择排序
简介:这里思路就比较简单,就是每一轮都将最大(或者最小)的放到最前面来,比如说数组:1,2,4,3将第一个与后面的所有进行比较,然后将比较所得的最小的放到位置1,然后将位置二的“2”与后面的进行比较,得到最小的放到位置二,其他同理。代码实例:#include <stdio.h> int sort(int *array, int length) { int i, j, temp; for (i = 0; i < length-1; i++) { for (j原创 2021-02-21 15:10:17 · 162 阅读 · 0 评论 -
希尔排序
希尔排序的简介:就是简单的插入排序(如冒泡排序)的升级版,就是一个特殊的插入排序,将一整个数列,分成n组,将每一组进行排序,然后再合并为n/2组,然后在对每一组进行排序,知道最后只剩一组。宏观简介:图片取自( https://www.cnblogs.com/chengxiao/p/6104371.html )插曲:for循环的执行顺序:for 循环语句的一般形式为:for (表达式1; 表达式2; 表达式3){ 语句;}下面来看看它的执行过程:求解表达式1。求解表原创 2021-02-21 15:08:02 · 105 阅读 · 0 评论 -
插入排序
简介:插入排序的基本思想是:将数组的第一个数认为是有序数组,从后往前(从前往后)扫描该有序数组,把数组中其余n-1个数,根据数值的大小,插入到有序数组中,直至数组中的所有数有序排列为止。这样的话,n个元素需要进行n-1趟排序具体算法描述如下:将待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列;取出下一个元素,在已经排序的元素序列中从后向前扫描;如果该元素(已排序)大于新元素,将该元素移到下一位置;重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;将新元原创 2021-02-21 15:03:57 · 79 阅读 · 0 评论 -
冒泡排序
简介:以从小到大排序为例,第一轮比较后,所有数中最大的那个数就会浮到最右边;第二轮比较后,所有数中第二大的那个数就会浮到倒数第二个位置……就这样一轮一轮地比较,最后实现从小到大排序。宏观简介:第一轮第二轮以此类推代码实例:#include <stdio.h> int main(){int arr[10];int i,j,temp; printf("请输入10数字:\n");//输入10个数字for (i = 0; i < 10; i++) {sca原创 2021-02-21 15:00:29 · 58 阅读 · 0 评论