练习题 --- 冒泡排序

题目:冒泡排序一个队列(升序)

程序分析(个人分析仅供参考):

首先,我们要知道这个排序是怎么样排序的。

按照升序排列,言外之意就是从小到大排列数字

拿第一个数字举例,他需要做的判断是几次呢?

首先,第一个数字需要跟第二个数字做对比,如果第一个数字比第二个数字大,那么两个数字交换一下位置,以此类推。

总结下来就是第一个循环需要对比的次数是list的长度-1,

第二个循环所需要对比的次数list长度-1-第一个循环的次数m。

第二个循环的主要功能就是具体判断两个数值的大小,以及一个交换的功能。

交换,可以像我这样直接写一个交换功能的函数,也可以直接写到for循环中。当然这个要根据个人的习惯

使用第二个循环的参数n当作list的角标进行判断list中的数值,

通过已经写好的交换功能函数,把原本list中的数值进行替换为更新后的数值。

最后输出更新后的数值,这样就实现了一个冒泡排序的功能

时间: 2024-10-25 17:12:41

练习题 --- 冒泡排序的相关文章

数组(创建、提取、冒泡排序及练习题)

数组是某一种数据类型的数据的组合.数组中的实体叫做数组的元素或成员. 示例一:数据的创建和提取 示例二:数组的创建和赋值方法 练习一:从控制台输入九个人的年龄放入数组 练习二:求年龄总和 练习三:求年龄总和,方法二 练习四:输入班级人数,根据人数,挨个输入成绩,求平均分 练习五:求平均分,最高分,最低分 练习六:冒泡排序,降序 练习七:冒泡排序,升序 练习八:输入十个人的分数,去掉两个最高分.两个最低分,求平均分 练习九:选班长,投票选 练习十:生成七个不重复的数 练习十一:手机号抽奖活动

VBS练习题

练习题: 1.输入3个数,输出其中最大的那个值. Option Explicit Dim intA,intB,intC intA=CInt(InputBox("请输入a:")) intB=CInt(InputBox("请输入b:")) intC=CInt(InputBox("请输入c:")) If intA>intB And intA>intC Then MsgBox "最大值是:"&intA ElseIf

函数的冒泡排序

冒泡排序 就是将数据从大到下或者从下到大排序的一种算法. 是首先拿着当前的值,依次和后面的值进行比较,如果是从大到小排列的话,当前的值小于后面的值的时候,就两两交换. 基本思路:对尚未排序的各元素从头到尾依次比较相邻的两个元素是否逆序(与欲排顺序相反),若逆序就交换这两元素,经过第一轮比较排序后便可把最大(或最 小)的元素排好,然后再用同样的方法把剩下的元素逐个进行比较,就得到了你所要的顺序.可以看出如果有 n 个元素,那么一共要进行 n-1 轮比较,第 i 轮要进行 j=n-i 次比较. 原理

Java数组练习题小结

//2015/07/07 //Java数组小小练习题 /* 3. 写一个函数,计算一个整数数组的平均值 4. 自定义一个整数数组a,读入一个整数n,如果n 在数组中存在,则输出n 的下标:如果不存在,则输出-1. 5. 给定一个数组,输出数组中的最大值和最小值 6. *给定一个数组,把这个数组中所有元素顺序进行颠倒. 7. *完成数组的冒泡排序算法:给定一个数组:int[] a = {1,3,2,7,5},利用冒泡排序对其按照从小到大的顺序排序,然后输出结果. 8. *使用第二种算法对数组进行排

数组及其练习题

数组:一组变量可以批量处理同一类型的数据 一维数组,二维数组,多维数组 定义一维数组:一.int[] aa = new int[5]; 定义了一个长度为5的int类型数组,但是未赋值,里面默认5个0,string类型的数组,未赋值的情况下,里面默认是“”: 二.int[] aa = new int[5]{1,2,3,4,5};定义了一个长度为5个int类型数组,并且立刻给它5个空都赋上值: 三.int[] bb = new int[] {22,33,44,55,66};不定义长度,直接赋值,计算

linux程序包管理rpm,yum和编译安装以及冒泡排序练习

linux程序包管理: API:Application Programming Interface POSIX:Portable OS 程序源代码--> 预处理--> 编译--> 汇编--> 链接 静态编译: 共享编译:.so ABI:Application Binary Interface Windows与Linux不兼容 ELF(Executable and Linkable Format) PE(Portable Executable) 库级别的虚拟化: Linux: WIN

C#入门之流程控制练习题(排序)

流程控制练习题 排序算法练习 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleAppTest { class Program { //排序 static void SortNum(ref int[] arrInt) { //冒泡排序 //for (int i = arrInt.Le

13.2 Go练习题答案

13.2 Go练习题答案 练习题1: 创建一个goroutine与主线程按顺序相互发送信息若干次 且打印 package temp import "fmt" //创建一个goroutine与主线程按顺序相互发送信息若干次 且打印 var c chan string //声明一个string管道 func Pingpong() { i := 0 for { fmt.Println(<-c) //打印管道中取出的数据 c <- fmt.Sprintf("From pi

13.1 Go练习题

13.1 Go练习题 创建一个goroutine与主线程按顺序相互发送信息若干次 且打印 slice在自动扩容后,内存地址变化 goroutine与闭包的坑 练习题汇总 package main func main() { //写?一个程序,获取当前时间,并格式化成 2017/06/15 08:05:00形式 //写?一个程序,统计?一段代码的执?行行耗时,单位精确到微秒. //计算99乘法表 //写?一个程序,对包含中?文的字符串串进?行行逆序. //写?一个程序,判断?一个字符串串是否是回?