首页 > 其他分享 >双向冒泡

双向冒泡

时间:2023-10-16 15:23:00浏览次数:41  
标签:tmp int 元素 无序 冒泡 双向

先从下向上从无序区冒出一个最小元素,再从上向下从无序区冒出一个最大的元素。

#include<stdio.h>
#define M 5
int main()
{
    int a[M],i,j,l,r,tmp;
    for(i=0;i<M;i++) scanf("%d",&a[i]);
    l=0,r=M-1,j=M-1;
    while(l!=r) {
        while(j>l) {
            if(a[j]<a[j-1]) {
                tmp=a[j];
                a[j]=a[j-1];
                a[j-1]=tmp;
            }
            j--;
        }
        l=++j;
        while(j<r) {
            if(a[j]>a[j+1]) {
                tmp=a[j];
                a[j]=a[j+1];
                a[j+1]=tmp;
            }
            j++;
        }
        r=--j;
        //for(i=0;i<M;i++) printf("%d ",a[i]);
        //printf("\nl=%d r=%d\n\n",l,r);
    }
    for(i=0;i<M;i++) printf("%d ",a[i]);
    return 0;
}

 

标签:tmp,int,元素,无序,冒泡,双向
From: https://www.cnblogs.com/zxqxwnngztxx/p/17767380.html

相关文章

  • 14.4 Socket 双向数据通信
    所谓双向数据传输指的是客户端与服务端之间可以无差异的实现数据交互,此类功能实现的核心原理是通过创建CreateThread()函数多线程分别接收和发送数据包,这样一旦套接字被建立则两者都可以异步发送消息,本章将实现简单的双向交互功能。首先我们需要封装两个函数,这里RecvFunction函数......
  • 数据结构之队列(双向队列)
    概念双向队列(Double-endsQueues简称Dequeue)是一种前后2端都可以添加数据(入队)、移除(出队)数据的有序线性表。特点双向队列(Deque,全名DoubleEndedQueue)是一种具有两个指针的线性表,允许从两端都可以进行插入和删除操作即双向队列可以在任意一端进行元素的插入和删除操作,而单向队......
  • 14.4 Socket 双向数据通信
    所谓双向数据传输指的是客户端与服务端之间可以无差异的实现数据交互,此类功能实现的核心原理是通过创建CreateThread()函数多线程分别接收和发送数据包,这样一旦套接字被建立则两者都可以异步发送消息,本章将实现简单的双向交互功能。首先我们需要封装两个函数,这里RecvFunction函数......
  • 冒泡排序
    冒泡排序算法原理1、每一次循环结束之后,都要找出最大的数据,放到参与比较的这堆数据的最右边。(冒出最大的那个气泡)2、 拿着左边的数字和右边的数字比对,当左边>右边的时候,交换位置。例如:9,8,10,7,6第1次循环:比较的数据981076891076第1次比较:交换891076......
  • Python 常见排序:冒泡、选择、快速
    简单说明:1.冒泡排序:双层循环,交替结果2.选择排序:whilenums,假设第一个值为做小,通过for循环找到最小值以此来替换,再将nums中该值去掉继续上述步骤3.快速排序:定义一个初值,把整个数据列表分为两部分,再递归代码实现:#冒泡排序defaction1(n):foriinrange(len(n)):......
  • js事件冒泡
    事件冒泡所谓的冒泡就是事件的逐级向上传导的过程,当后代元素上的事件被触发时,其祖先元素的相同事件也会被触发。因为子元素以及父元素在设置监听事件时均设置的是在事件的冒泡阶段调用回调函数,单击子元素时,因为事件的冒泡此单击事件会一直冒泡到父元素中。 代码如下:<!DOCTYP......
  • 【转】js事件冒泡
    js事件冒泡详解和使用场景最新推荐文章于 2023-07-1311:46:30 发布Youyzq于2022-11-1416:16:47发布什么是事件冒泡?事件冒泡就是指父元素和子元素有相同的事件,当触发子元素事件时,会向上冒泡,同时也会触发父元素事件事件冒泡的三个阶段1、捕获阶段:从window......
  • 事件冒泡
    一个问题​如果有下面一段代码:在HTML中,定义了嵌套的3个 <div/>,ID分别为div1、div2、div3。在JavaScript中定义一个点击事件处理函数,打印当前执行事件元素的id。把事件处理函数分别注册到这3个div中。这个时候,如果点击最里边的div3元素,你猜代码的输出结果是......
  • 【转】JS事件捕获和事件冒泡
    DOM事件流(eventflow)存在三个阶段:事件捕获阶段、处于目标阶段、事件冒泡阶段。事件捕获(eventcapturing):当鼠标点击或者触发dom事件时(被触发dom事件的这个元素被叫作事件源),浏览器会从根节点=>事件源(由外到内)进行事件传播。事件冒泡(dubbedbubbling):事件源=>根节点(由内到外)......
  • LVGL双向链表学习笔记
    LVGL双向链表学习笔记1、LVGL链表数据类型分析对于LVGL双向链表的使用,我们需要关注lv_ll.h和lv_ll.c两个文件,其中lv_ll.h里面包含了链表结构类型定义,以及相关API的声明,首先介绍链表的结构类,如下图所示:一开始看到这个类型声明我是懵的,怎么链表的一个结点的类型是uint8_t,那是不......