最基本的题目:一个数组,未知长度,按从小到大的顺序进行排列;现在用基本的冒泡排序方法进行排序!
一种思路是先把大的往后排,数组呈逐步减少的状态,排序的过程为:
i=0时,j=0,j<5,j++
8 3 6 1 -2
3 8 6 1 -2
3 6 8 1 -2
3 6 1 8 -2
3 6 1 -2 8
i=1时,j=0,j<4,j++
3 6 1 -2 8
3 6 1 -2 8
3 1 6 -2 8
3 1 -2 6 8
i=2时,j=0,j<3,j++
3 1 -2 6 8
1 3 -2 6 8
1 -2 3 6 8
i=3时,j=0,j<2,j++
1 -2 3 6 8
-2 1 3 6 8
i=4时,j=0,j<1,j++
-2 1 3 6 8
-2 1 3 6 8
具体的实现代码是:
var arr = [8,3,6,1,-2]; var temp; var count=0; for(var i=0; i<arr.length; i++) { for (var j = 0; j < arr.length-i; j++) { if (arr[j + 1] < arr[j]) { temp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = temp; count++; //alert("i:"+i+"j:"+j); } } } document.write(arr); document.write("总共循环了"+count);//9
另外一种思路是把小的元素往前排,再比较的时候就比较剩下的元素就可以了,i=0先把-2给换到最前边,i=1把1网签拽,数组就剩下8 3 6了 ,数组就越来越小了!
var arr = [8,3,6,1,-2]; var temp; var count=0; for(var i=0; i<arr.length; i++) { for (var j =arr.length-1; j >= i; j--) { if (arr[j + 1] < arr[j]) { temp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = temp; count++; } //alert("i:"+i+"j:"+j); } } document.write(arr); document.write("总共循环了"+count);//9
当然这两种思路都是冒泡法,5个不重复的元素,循环了9次
发表评论
-
测试代码高亮
2012-10-22 15:28 0HTML <h3 class="sh_a ... -
href="javascript:scroll(0,500)"
2012-08-28 10:44 452<a href="javascript:scr ... -
网站与博文收藏
2011-09-09 19:44 850看见好的文章总是忍不住收藏一下! http://w3h ... -
FF下面实现outerHTML
2011-07-20 22:06 816http://w3help.org/zh-cn/causes/ ... -
如何实现图片预加载
2011-07-19 10:29 679function loadImage(url, callbac ... -
数组排序专题(二)------快速排序(大量数据)
2011-07-14 14:14 1146看了阮一峰介绍的快速排序方法,觉得受益匪浅 下面是他的链接h ... -
javascript常见扩展方法
2011-07-08 14:44 9151.去掉数组中重复的值 Array.protot ... -
删除数组中重复的元素
2011-06-07 11:02 775//删除数组中重复的元素 var numArr=[6, ... -
javascript中style后面的属性与CSS中的属性区别
2011-05-06 14:36 764在javascript中style后面的属性与 ... -
解淘宝面试题
2011-05-04 16:53 925从网上搜出了淘宝的面试题,做了一下,把代码贴出来,一起讨论下! ... -
获取div、网页、屏幕、浏览器的宽高
2011-05-03 17:37 0test -
闭包实例
2011-04-29 10:39 611闭包是JS中重点难点,自己看了N多文章和实例,检测一下! ... -
type属性是否可以动态修改?
2011-04-23 10:34 611在IE中,type为只读,无法动态修改,除非是通过create ... -
某公司js试题(转来的)
2010-11-26 15:31 1161首先多谢BlueCat,这是从他那转过来的; 1、笔试 ... -
前端开发工程师面试题(转来的)
2010-10-08 16:09 741前端工程师面试题!!! ...
相关推荐
Java中数组实例---冒泡排序.pdf 学习资料 复习资料 教学资源
分类标签:选择数组排序,冒泡排序,插入排序,冒泡排序分类标签:选择数组排序,冒泡排序,插入排序,冒泡排序分类标签:选择数组排序,冒泡排序,插入排序,冒泡排序分类标签:选择数组排序,冒泡排序,插入排序,...
使用冒泡排序实现的java语言编写的关于二维数组的排序,实现了行、列的排序输出。
c++ c语言编写 二维数组的 冒泡排序 范例
思路以及注意点、说明我都加在了代码旁边的注释里,好好悟悟!
//冒泡排序 for(int i=0;i;i++){ for(int j=i+1;j;j++){//注意j的开始值是i+1,因为按照排序规则,比a[i]大的值都应该在它后面 if(a[i] > a[j]){ int temp = a[j]; a[j] = a[i]; a[i] = temp; ...
java冒泡排序 代码为排序源代码 简洁明了 无其他
在STM8S003单片机上实现数组排序,用3种冒泡排序法对数组进行排序,并通过串口打印排序过程。
冒泡排序
易语言数组排序算法集合源码,数组排序算法集合,排序程序,冒泡排序,改冒泡法,双向泡排序,双响泡排序,直接插入排序,地精排序,地精排序2,地精排序3,二分排序,选择排序,梳子排序,希尔排序,快速排序
冒泡排序-排序过程 设想被排序的数组R[1..N]垂直竖立,将每个数据元素看作有重量的气泡,根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R,凡扫描到违反本原则的轻气泡,就使其向上"漂浮",如此反复进行,...
C语言基础小代码,用于C语言入门新手。也适用于二维数组。
java数组排序的思想,过程和代码实现。多种数组排序的方法,主要有冒泡排序,堆排序,插入排序, 归并操作(merge), 归并操作(merge),选择排序,希尔排序。
交换排序 选择排序 冒泡排序 插入排序
Java 二位数组排序,数组内存储整形数,前一列先排,排完再在前列的基础上再排,同一行的数不会再排序时变位置,跟excel表格排序一样,使用冒泡排序。
这个程序根据冒泡排序从大到小,从小到大的把数组里的元素进行了排序,程序思想很清晰
使用c语言写的冒泡排序程序,对数组实现,有注释。
编制一维数组排序程序。数组大小n用全局变量定义,数组数据从文本文件中读入或随机生成。包含冒泡排序、选择排序、插入排序三种排序方法。程序能够选择使用任何一种方法排序。
JAVA的三种排序方法,快束排序 选择排序 冒泡排序,完整源代码。
价值上万的Java精品网课教程\第04天(数组)