2021-04-14(冒泡递归)

树的遍历之先序遍历二叉树

1. 遍历简介:

树作为非线性数据结构,在我们取出数据时就需要设计遍历,所谓遍历,就是按照一定的规则性,将数据结构中的所有数据全部依次访问,而二叉树本身并不具有天然的全局次序,故为实现遍历,需通过在各节点与其孩子之间约定某种局部次序,间接地定义某种全局次序,这便是我们常规定的先序,中序,后续遍历。

在开始前,请记住下面的这三句话:

先序遍历:根左右

中序遍历:左根右

后序遍历:左右根


递归

2021-04-14(冒泡递归)_第1张图片
image.png

冒泡排序

过程介绍(以顺序为例)

1.从第一个元素开始逐个比较相邻的元素。如果第一个比第二个大(a[1]>a[2]),就交换他们两个。

2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。此时在这一点,最后的元素应该会是最大的数,我们也称呼一遍这样的操作为:一趟冒泡排序。

3.针对所有的元素重复以上的步骤,每一趟冒泡排序的最大值已放在最后,下一次操作则不需要将此最大值纳入计算计算。

4.持续对每次对越来越少的元素,重复上面的步骤,直到没有任何一对数字需要比较,即完成冒泡排序。

图示过程

以数组数据{ 70,50,30,20,10,70,40,60}为例:

开始数据

70

50

30

20

10

70

40

60

第一趟

50

30

20

10

70

40

60

70

第二趟

30

20

10

50

40

40

70

70

第三趟

20

10

30

40

50

60

70

70

第四趟

10

20

30

40

50

60

70

70

第五趟

10

20

30

40

50

60

70

70

第六趟

10

20

30

40

50

60

70

70

第七趟

10

20

30

40

50

60

70

70

如此图,每一次排序结尾,总有一个最大的数被放在了最后,然后这个趋势逐渐往前,但是,到了第四趟的时候,其实我们整个数据已经排序结束了,但是此时我们的程序还在进行,直到第5,6,7趟结束程序才算真正的结束,这其实是一种浪费算力的表现。


将四个整数进行从小到大的顺序排列

#include"stdio.h"
int sort(int a[],int n)
{   
    int i,j,temp;
    for(i=0;i

你可能感兴趣的:(2021-04-14(冒泡递归))