冒泡排序,一种看不到 ,求大神解释下

问题描述

1inttemp;2int[]arrSort=newint[]{10,8,3,5,6,7,9};3for(inti=0;i<arrSort.Length;i++)4{5for(intj=i+1;j<arrSort.Length;j++)///orfor(intj=0;j<arrSort.Length-1-i;j++)[/color]后面这种怎么去理解?6{7if(arrSort[j]<arrSort[i])8{9temp=arrSort[j];10arrSort[j]=arrSort[i];11arrSort[i]=temp;12}13}14}

解决方案

本帖最后由 qq_35292392 于 2016-06-12 21:30:02 编辑
解决方案二:
冒泡排序,决不可能随便地进行if(arrSort[j]<arrSort[i])

这种比较。冒泡排序只在相邻的两个元素之间比较,这才叫做冒泡。也就是顶多会写if(arrSort[j]<arrSort[j-1])

这种代码。
解决方案三:
像那种if(arrSort[j]<arrSort[i])

的算法,出现在选择排序之类算法中。你要有空间想象的能力。如果没有直观的、隐喻的想象力,而只会死抠程序代码,那么学习编程就累了,就缺乏一些必要的东西了。
解决方案四:
比较过的就不再比较for(intj=i+1;j<arrSort.Length;j++)是从前算起for(intj=0;j<arrSort.Length-1-i;j++)是从后计算j<arrSort.Length-1-i根据交换律,得j+1+i<arrSort.Length就是第一种写法

时间: 2024-08-25 05:33:42

冒泡排序,一种看不到 ,求大神解释下的相关文章

helloworld-为生么这个程序几个编译程序都无法显示呀??求大神解释下!!

问题描述 为生么这个程序几个编译程序都无法显示呀??求大神解释下!! public class HelloWorld{ public static void main(String[] args) { int num = 999; int count = 0; for(;(num/10)>1; count++) { ; } System.out.print("它是个"+count+"位的数"); } } 解决方案 for(;(num/10)>1; cou

安装打开虚拟串口软件时报错,求大神解释下

问题描述 我在本机上安装了一个虚拟串口软件VSPDXP,但是安装之后点击运行就报错,报错图片如下,求大神解释下,该怎么搞

c++新手 明天交作业了 求大神解释下这句话

问题描述 c++新手 明天交作业了 求大神解释下这句话 Retangle::Retangle(float w,float h):width(w),height(h) { } 解决方案 一个矩形类,定义了它的一个包含两个参数的构造函数,分别对宽度width和高度heigh字段初始化,用参数w h 解决方案二: 这个自己翻一下C++的书吧,这么简单的问题就不要伸手了... 解决方案三: 使用初始化列表初始化Retangle的成员width和height.使用初始化列表的原因有: 1. 效率高: 2.

求大神解释下c语言双重for循环的汇编语句??

问题描述 求大神解释下c语言双重for循环的汇编语句?? void main(){ int i,j; for(i=0;i<5;i++){ printf("0"); for(j=0;j<2;j++){ printf("1"); } } } 汇编: main: .LFB24: pushl %ebp movl %esp, %ebp pushl %ebx andl $-16, %esp subl $16, %esp movl $5, %ebx .L3: movl

小弟刚学,求大神解释下运行出来的是什么意思?在RESING容器中

问题描述 Resin-3.0.21(builtThu,10Aug200612:03:19PDT)Copyright(c)1998-2006CauchoTechnology.Allrightsreserved.UsingResin(R)OpenSourceundertheGNUPublicLicense(GPL).Seehttp://www.caucho.comforinformationonResinProfessional,includingcaching,clustering,JNIacce

cpu-求大神解释下NUMA、UMA、SMP这三种CPU架构?

问题描述 求大神解释下NUMA.UMA.SMP这三种CPU架构? 分别对应我们现在常用的哪些机器上使用? 前两个好像只是一个N的区别.. 解决方案 打开机箱,如果你看到有多个插CPU的插座,那就是SMP 如果每个CPU旁边有一组单独的内存插座,那就是NUMA,否则就是UMA 解决方案二: NUMA.SMP都是服务器上用的.PC一般只有1个CPU. 解决方案三: NUMA就是非统一内存访问 UMA就是统一内存访问 普通PC就是UMA. 解决方案四: 在UMA系统中,CPU直接就可以访问所有内存.

js-求大神解释下previoussibling与previouselementsibling

问题描述 求大神解释下previoussibling与previouselementsibling 查了下previoussibling的解释: 返回列表项的 previousSibling(前一个同胞节点): 查了下previoussibling的解释: previousElementSibling //前一个兄弟元素. 这样看起来二者应该是相同意义: 然而我在写代码的时候,发现用previousElementSibling可以捕捉到前一个同胞节点, 用previoussibling却不能?

java-编写易宝支付报错,报错信息看不懂,求大神

问题描述 编写易宝支付报错,报错信息看不懂,求大神 com.yeepay.merchant.InvalidParamException: invalid param, name[hmac] value[54ae8ae84065be5c1fb90bbd3e4e71cc] 这是报错的信息,根据网上一个易宝文档写的,运行后就这样了.求大神!! 解决方案 按照错误提示来说是,merchant的无效参数导致的. name[hmac] value[54ae8ae84065be5c1fb90bbd3e4e71

软件开发-怎么用电脑看电视,求大神帮忙。

问题描述 怎么用电脑看电视,求大神帮忙. 电脑和电视相连,电视上的台怎么在电脑上也可以看到,电脑上需要下载什么软件,能详细说说吗? 解决方案 电脑不用和电视相连,只要下载一个网络电视软件,电脑联网就可以了. 或者把你机顶盒上的hdmi接口插入你显示器,不需要电脑也可以看. 如果非要通过电脑.你需要购买一片电视卡,将你的有线电视接入电视卡,然后输入电脑. 解决方案二: 装一个解码软件,就可以实现看电视节目了 解决方案三: 如果电脑能上网的话,可以下载华数TV.芒果TV.CBOX等 解决方案四: 1