冒泡排序和双层循环的理解

冒泡排序:

Dim liSort() As Short = {5, 3, 1, 7, 6, 11, 234, 23, 1, 543}

Dim j As Short = 0

Dim liTemp As Short = 0

第一层循环控制,一共要比较多少轮。总长度 – 1 ,因为最后剩下1位,不需要再进行比较。

第二层循环控制,每一轮要比较多少次。每比较完1轮,就冒泡得到了最大的数字。最大数字不需要再加入比较。

For i = 0 To liSort.Length - 2

For j = 0 To liSort.Length - 2 - i

If liSort(j) > liSort(j + 1) Then

liTemp = liSort(j)

liSort(j) = liSort(j + 1)

liSort(j + 1) = liTemp

End If

Next

Next

原文地址:https://www.cnblogs.com/gongjin/p/9166852.html

时间: 2024-10-10 10:01:07

冒泡排序和双层循环的理解的相关文章

C语言实现直接插入排序,冒泡排序以及二分查找(巩固理解记忆)

C语言实现直接插入排序,冒泡排序以及二分查找(巩固理解记忆) 虽然直接插入排序,冒泡排序以及二分查找是算法中最为基础以及老掉牙的话题,但作为一名算法的深爱者,有时候无聊时候总会将这些简单的话题重新理解并敲写一番,目的只是为了得到理解娴熟的程度.而且,我觉得越是简单基础的东西,有时候更应该反复的去敲写,深化它,并最终让其中的思想内化为自己的一部分.待到他日一提起之时,会相当娴熟的"刷刷刷..."几分钟搞定,那就很有成就感了! 因为我喜欢对于一个问题进行实例的剖析,进而再转化为特有的用某种

谈谈嵌套for循环的理解

谈谈嵌套for循环的理解     说for的嵌套,先说一下一个for循环的是怎么用的.      这次的目的是为了用for循环输出一个乘法口诀表,一下就是我的一步步理解.    一.   语法:            for(表达式1;表达式2;表达式3){                java语句;            }                表达式1是初始化表达式,最先执行,只执行一次.        表达式2必须是boolean类型的表达式.        for循环开始执行

js关于循环的理解

学习任何语言都离不开循环,js也是一样,看了网上的资料,整理一份关于js循环的理解. 1.最基础循环,js和其他高级语言一样使用for.while循环 (function() { for(var i=0, len=demoArr.length; i<len; i++) { console.log('demo1Arr['+ i +']:' + demo1Arr[i]); } })(); for循环中的i在循环结束之后任然存在与作用域中,为了避免影响作用域中的其他变量,使用函数自执行的方式将其隔离起

【策略与优化 - 001】- 在特定场景下,如何对双层循环进行降级,加速数据匹配?

一.场景介绍 假设某次搜索结果中有 100_0000 篇文章,而你的个人收藏中有 10000 篇,如何在短时间内快速识别 100_0000 中哪些是 "已收藏", 哪些是 "未收藏" ? 二.正常逻辑(双层for 循环) public class ForEachTest { public static void main(String[] args) { // user book list List<String> ubList = new ArrayL

REQUIRES_NEW 如果不在一个事务那么自己创建一个事务 如果在一个事务中 自己在这个大事务里面在创建一个子事务 相当于嵌套事务 双层循环那种

REQUIRES_NEW   如果不在一个事务那么自己创建一个事务 如果在一个事务中 自己在这个大事务里面在创建一个子事务  相当于嵌套事务 双层循环那种 不管是否存在事务,业务方法总会自己开启一个事务,如果在已有事务的环境中调用,已有事务会被挂起,新的事务会被创建,直到业务方法调用结束,已有事务才被唤醒. 原文地址:https://www.cnblogs.com/classmethond/p/10440510.html

关于AngularJs中监听事件及脏循环的理解

可能很多刚入行或者刚学习的前端对于AngularJs中的一些事件或者概念感觉不理解或者没有思路,今天让我们一起来剖析一下AngularJs中的一些事件. AngularJs中对于的监听事件会用到一个scope函数$watch,它包含了三个参数,首先我们在概念上来了解一下: $watch是一个scope函数,用于监听模型变化,当你的模型部分发生变化时它会通知你. $watch(watchExpression, listener, objectEquality); 每个参数的说明如下: watchE

Spring 循环引用 ——理解singleton与prototype初始化的区别

所谓的循环引用,就是A依赖B,B又依赖A,A与B两个对象相互持有.像下面这种情况: class A { B b; public A(B b) { this.b=b; } } class B { A a; public B(A a ) { this.a=a; } } 我们知道spring在获取对象或者在加载的时候,触发依赖注入.例如触发A对象的依赖注入,发现需要B对象,而此时B还没有初始化,就去实例化B对象,而又需要A对象,这样就进入了一种死循环状态,有点像操作系统里面的死锁.似乎这种情况发生了,

Node - 浅谈对非阻塞I/O、事件循环的理解

Node.js的主要特点 单线程.非阻塞I/O.事件驱动,这三个特点是相辅相成的. Node为了在低硬件服务器条件下高并发,所以减少了内存消耗,选择单线程: 因为只有一个线程,所以必须非阻塞I/O,每件事情都有回调函数: 为了合理调度,Node使用了事件环的机制,采用事件驱动来调度事件. 非阻塞I/O I/O是输入(input).输出(output)的简称. 阻塞I/O和非阻塞I/O的区别在于系统在输入与输出的期间,能不能接收输入. 举个例子:餐厅服务员招待客人 阻塞I/O:餐厅有多个服务员(多

学习笔记-汇编-双层循环

汇编中 循环的语法是 C语言中的循环 mov cs,N   //循环最大次数    <-----> int i=N; blockName: //循环开始 <----->  for(;i>0;i++){ //xxx...   //循环中的语句      <-----> //XXXX loop blockName //循环结束  <-----> } 另附上汇编示例代码 1 assume cs:code 2 code segment 3 start: 4 m