美文网首页
2021-04-14(冒泡递归)

2021-04-14(冒泡递归)

作者: 张轻舟 | 来源:发表于2021-04-14 18:19 被阅读0次

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

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<n-1;i++)
    {
        for(j=0;j<n-i-1;j++)
        {
            if(a[j]<a[j+1])
            {
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }
    return 0;
}
int main()
{   
    int i;int a[10];
     for(i=0;i<10;i++)
     {
         scanf("%d",&a[i]);
     }
    sort(a,11);
    for(i=0;i<10;i++)
     {
         printf("%d ",a[i]);
     }
    printf("\n");
    return 0;
}

相关文章

  • 2021-04-14(冒泡递归)

    树的遍历之先序遍历二叉树 1. 遍历简介: 树作为非线性数据结构,在我们取出数据时就需要设计遍历,所谓遍历,就是按...

  • 常见算法的 Python 实现

    二分法查找 非递归版本: 递归方法实现: 冒泡排序 选择排序

  • 事件冒泡与事件委托

    1.事件冒泡 事件冒泡就是事件从最具体的元素到最模糊的元素递归执行。 阻止事件冒泡:stopPropagation...

  • 看图说话排序算法之冒泡排序

    排序算法的种类非常多,这里总结冒泡排序和对冒泡排序的改进---快速排序的循环实现和递归实现。 一丶冒泡排序 假设待...

  • 简单算法

    冒泡排序: while 实现的二分查找: 递归实现二分查找:

  • PHP数组示例算法

    1、冒泡排序 2、归并排序 3、二分查找-递归 4、二分查找-非递归 5、快速排序 6、选择排序 7、插入排序

  • 2020-08-21 算法合集

    1. 冒泡排序 2.选择排序 3. 插入排序 4. 希尔排序 5. 归并排序(递归实现) 6. 快速排序(递归实现...

  • | 算法

    冒泡排序 逻辑:极值冒泡,迭代;通过设置正序标识变量,优化排序计算 测试: 快速排序 逻辑:找基准,三分法,使用了递归

  • nodejs实现冒泡排序和快速排序

    冒泡排序:双层循环,内部循环每次选出最大值或者最小值,放到头上或者放在尾部 快速排序:递归调用,每次递归选出一个“...

  • 常见算法

    排序&查找 二分查找 题目:在有序数组中查找一个值,返回该值的索引。(非递归方式&递归方式) 冒泡排序(优化后) ...

网友评论

      本文标题:2021-04-14(冒泡递归)

      本文链接:https://www.haomeiwen.com/subject/czqklltx.html