单链表的冒泡排序

2023-11-02

  1. 当采用冒泡排序时,每一个元素与后一个元素比较,若这个元素小于后一个元素,则交换这两个元素的位置。外层循环n-1次,内循环n-1-i次。
  2. 首先定义结构体指针stu *p, *q, *tail;
  3. p = L; 让p指向L,L是首元结点。Int count=0,先循环遍历得到结点个数。也就是上面说的n值。

  1. 再两次循环即可比较大小

 总代码:

#include<stdio.h>
typedef struct student
{
	int age; 				//年龄
	struct student *next;
}stu;

void BubbleSort(stu* &L)
{
	int i ,count = 0, num;//count记录链表结点的个数,num进行内层循环,
	stu *p, *q, *tail;//创建三个指针,进行冒泡排序
	p = L;
	while(p->next != NULL)//计算出结点的个数
	{
		count++;
		p = p->next;
	}
	for(i = 0; i < count - 1; i++)//外层循环,跟数组冒泡排序一样
	{
		num = count - i - 1;//记录内层循环需要的次数,跟数组冒泡排序一样,
		q = L->next; //令q指向第一个结点
		p = q->next;//令p指向后一个结点
		tail = L;//让tail始终指向q前一个结点,方便交换,也方便与进行下一步操作
		while(num--)//内层循环 次数跟数组冒泡排序一样
		{
			if(q->age < p->age)//如果该结点的值大于后一个结点,则交换
			{
				q->next = p->next;
				p->next = q;
				tail->next = p;
			}
			tail = tail->next;
			q = tail->next;
			p = q->next;
		 }
	}
}



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单链表的冒泡排序 的相关文章

随机推荐

  • 分布式高可靠:负载均衡

    分布式高可靠 负载均衡 前言 什么是负载均衡 服务请求的负载均衡方法 轮询策略 顺序轮询 加权轮询 随机策略 哈希和一致性哈希策略 对比分析 知识扩展 如果要考虑请求所需资源不同的话 应该如何设计负载均衡策略呢 总结 前言 分布式可靠性相关
  • chrome浏览器安装右键翻译插件

    平常打开网页查看相关文章的时候 遇到一些不会的英文单词 可能第一反应是复制英文单词到百度翻译里面 下面为介绍一种直接右键选中英文单词 实现在线翻译的插件 这边用到的是 划词翻译 插件 安装步骤如下 第一步 下载扩展程序插件 链接 https
  • 深入JVM - 实例详解invoke相关操作码

    Java虚拟机规范中有一个章节专门列出了操作码助记符 对应的链接为 Java Virtual Machine Specification Chapter 7 Opcode Mnemonics by Opcode 其中 方法调用相关的操作码为
  • 毕业设计 基于Arduino的肺活量计

    0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到毕业答辩的要求 这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求 为了大家能够顺利以及最少的精力通过毕设 学长分享优质毕业设计项
  • 编程语言Java与c#的区别浅谈

    Java和c 都是编程的语言 它们是两个不同方向的两种语言 它们到底有什么区别呢 现在我给大家介绍一下 首先 我给大家说说他们的相同点吧 它们都是面向对象的语言 也就是说 它们都能够实现面向对象的思想 封装 继承 多态 下面给大家介绍一下它
  • NGINX源码之:listen和server_name命令与listening监听创建

    在http块的server块解析中 通过解析listen和server name命令配置 完成端口监听的初始化 虚拟主机配置关联 实现从host port到虚拟主机的映射关系 在进入解析源码之前 先来看看server块集中配置 server
  • html如何给3种渐变色,css中颜色渐变的实现(三种方式)

    本篇文章给大家带来的内容是关于css中颜色渐变的实现 三种方式 有一定的参考价值 有需要的朋友可以参考一下 希望对你有所帮助 注意IE9及之前的版本不支持渐变 Safari要加 webkit 的前缀 Opera要加 o 的前缀 Firefo
  • explicit关键字的作用及其用法

    一 explicit作用 在C 中 explicit关键字用来修饰类的构造函数 被修饰的构造函数的类 不能发生相应的隐式类型转换 只能以显示的方式进行类型转换 这个关键字只能用在类内部的构造函数声明上 而不能用在类外部的函数定义上 它的作用
  • vue后台返回二维码展示在前端页面,复制二维码到剪贴板

    1 二维码渲染 vue请求 后端返回二维码 在请求时加上 responseType blob export function getQrCode query return request url xx method get params q
  • 单点登录CAS学习(二):使用IDEA搭建cas-overlay-5.3工程

    上一篇对于单点登陆进行了初步了解 我们做单点登录应用的时候 会有两个场景 单点登录的服务端 单点登录的客户端 指各个应用系统 从本篇开始的系列文章将分别介绍服务端的工程如何搭建 客户端如何改造以适用于单点登录 首先从服务端开始 我们往往需要
  • ElasticSearch集群管理(VMware)

    一 集群结构 ES通常以集群方式工作 这样做不仅能够提高 ES的搜索能力还可以处理大数据搜索的能力 同时也增加了系统的 容错能力及高可用 下图是ES集群结构的示意图 此处的设置为 每个主分片有两个副本 如果某个节点挂了也不怕 比如节点1挂了
  • 操作系统学习(十一)处理机调度

    一 知识总览 调度 按某种规则来决定处理这些任务的顺序 多道程序系统中 进程的数目往往多于处理机的数目 按照一定的算法从进程就绪队列中选择一个进程将处理机分配给他 以实现进程的并发执行 二 高级调度 作业调度 作业 用户在一次解题或一个事务
  • 计算机单位换算

    一 计算机容量单位 容量单位 字节 B gt 千字节 KB gt 兆字节 MB gt 吉字节 GB gt TB gt PB gt EB ZB YB NB DB等 注 Byte就是B也就是字节 KB是千字节 MB是兆 GB是千兆 TB是千千兆
  • jvisualvm监控tomcat

    1 修改Tomcat的catalina sh文件 修改tomcat的bin目录下的 catalina sh文件 搜索 JAVA OPTS 在引号中添加参数 Dcom sun management jmxremote port 10086 D
  • 设计RandomPool结构

    详情参看 程序员代码面试指南 P474 package com gxu dawnlab algorithm5 import java util HashMap 设计RandomPool结构 author junbin 2019年7月1日 p
  • 手动添加本地路由表并用Quagga+ospf通知其它路由

    文章目录 参考文章 一 路由设置 1 参数说明 2 查询设置 二 动态路由的设置 实验 参考文章 Linux下使用Quagga搭建软路由 OSPFv2学习 鳥哥的 Linux 私房菜 一 路由设置 1 参数说明 root anzye rou
  • AssetsBundle资源包的打包和加载

    如何打Assetsbundle资源包呢 这样 using UnityEditor using UnityEngine public class BuildAssetBundle
  • openmv图像识别:宝藏多颜色图形同时识别

    前言 最近参加了光电赛 校赛运气不好碰到铁板被淘汰了 emmm 我是大一学硬件的的 负责的是宝藏识别部分 好歹花了好几天学python 研究openmv写出来的代码 即使没啥技术性 我也不甘心就这么没了 发出来记录一下 目录 零 预备知识
  • 物联网【劲爆发现】免费云服务平台,AP透传,Web透传,ESP8266,Hex格式数据

    劲爆发现 免费云服务平台 AP透传 Web透传 ESP8266 Hex格式数据 安卓一键配置 今日 闲暇 发布一个免费的云服务器 供大家测试 先上图 看看如何使用吧 1 先从附件下载Esp8266固件及其下载工具 如下图 链接 http p
  • 单链表的冒泡排序

    当采用冒泡排序时 每一个元素与后一个元素比较 若这个元素小于后一个元素 则交换这两个元素的位置 外层循环n 1次 内循环n 1 i次 首先定义结构体指针stu p q tail p L 让p指向L L是首元结点 Int count 0 先循