最基本的题目:一个数组,未知长度,按从小到大的顺序进行排列;现在用基本的冒泡排序方法进行排序!
一种思路是先把大的往后排,数组呈逐步减少的状态,排序的过程为:
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 489<a href="javascript:scr ... -
网站与博文收藏
2011-09-09 19:44 904看见好的文章总是忍不住收藏一下! http://w3h ... -
FF下面实现outerHTML
2011-07-20 22:06 837http://w3help.org/zh-cn/causes/ ... -
如何实现图片预加载
2011-07-19 10:29 716function loadImage(url, callbac ... -
数组排序专题(二)------快速排序(大量数据)
2011-07-14 14:14 1197看了阮一峰介绍的快速排序方法,觉得受益匪浅 下面是他的链接h ... -
javascript常见扩展方法
2011-07-08 14:44 9481.去掉数组中重复的值 Array.protot ... -
删除数组中重复的元素
2011-06-07 11:02 801//删除数组中重复的元素 var numArr=[6, ... -
javascript中style后面的属性与CSS中的属性区别
2011-05-06 14:36 795在javascript中style后面的属性与 ... -
解淘宝面试题
2011-05-04 16:53 952从网上搜出了淘宝的面试题,做了一下,把代码贴出来,一起讨论下! ... -
获取div、网页、屏幕、浏览器的宽高
2011-05-03 17:37 0test -
闭包实例
2011-04-29 10:39 643闭包是JS中重点难点,自己看了N多文章和实例,检测一下! ... -
type属性是否可以动态修改?
2011-04-23 10:34 643在IE中,type为只读,无法动态修改,除非是通过create ... -
某公司js试题(转来的)
2010-11-26 15:31 1189首先多谢BlueCat,这是从他那转过来的; 1、笔试 ... -
前端开发工程师面试题(转来的)
2010-10-08 16:09 741前端工程师面试题!!! ...
相关推荐
c语言从互联网上收集的用于采访的常用PHP算法。冒泡、快速排序、二进制排序、二维数组去重、二维数组排序_php-suanfa.zip
对于二维数组的排序,通常的做法是先将其转换为一维数组,然后再利用冒泡排序对一维数组进行排序,最后再将排序后的一维数组还原为二维数组。这种方法不仅易于理解和实现,而且能够充分利用已有的排序算法。 1. **...
这个例子展示了如何在Java中使用冒泡排序对一个长度为10的随机数组进行升序排列。通过外层循环控制轮数,内层循环实现两两比较和交换,以及一个标志位判断是否提前结束排序,从而实现了冒泡排序算法的基本功能。
冒泡排序是一种简单的排序算法,通过重复遍历待排序的序列,交换相邻位置上的元素来达到排序的目的。在这个范例中,我们将探讨如何用C++或C语言实现对二维数组进行冒泡排序。 首先,我们要理解冒泡排序的基本原理。...
数组排序是编程中最常见的任务之一,它涉及到将数组内的元素按照一定的顺序进行排列。在C语言中,常见的排序算法有选择排序和冒泡排序。选择排序通过重复遍历数组,每次找出剩余元素中的最小(或最大)值,然后与未...
使用冒泡排序实现的java语言编写的关于二维数组的排序,实现了行、列的排序输出。
**冒泡排序是一种基础的排序算法,其原理是通过不断地比较相邻元素并交换位置,将最大(或最小)的元素逐渐“冒”到数组的一端。在C语言中,我们通常利用指针和循环结构来实现这个算法。下面将详细解释冒泡排序的...
冒泡排序是一种简单直观的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的...
总的来说,这段代码提供了四种排序算法的实现,分别是冒泡排序、选择排序、插入排序以及Java内置的数组排序。每种排序算法都有其适用场景,理解这些算法可以帮助我们更好地解决实际问题,并根据需求选择合适的排序...
在最好情况下(数组已经排序),冒泡排序的时间复杂度为O(n),因为只需要一次遍历就可以确定数组已排序。平均情况下的时间复杂度也是O(n^2)。空间复杂度为O(1),因为冒泡排序是原地排序,不需要额外的存储空间。 ##...
例如,创建一个通用的数组排序方法: ```java public static void sortArray(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + ...
在IT行业中,数组排序是一个基础且重要的概念,广泛应用于数据处理和算法实现。本文将深入探讨两种常见的排序算法——选择排序和冒泡排序,并结合给定的文件信息进行解析。 首先,选择排序是一种简单直观的排序算法...
本篇介绍了Java中二维数组排序的实现,主要使用了冒泡排序算法,并且确保了排序过程中同一条记录内的元素不会改变其相对位置。这种排序方式适用于类似Excel表格的场景,在实际应用中具有一定的实用价值。
java冒泡排序 代码为排序源代码 简洁明了 无其他
在编程领域,数组排序是常见的任务之一,尤其是在处理大量数据时。Java作为一种广泛使用的编程语言,提供了多种排序算法供开发者选择。本主题将详细介绍三种基本的排序算法:快速排序、选择排序和冒泡排序,以及它们...
在易语言中,处理文本数据是非常常见的任务,而“文本数组排序模块”则是一个专门用于对文本数组进行排序的功能组件。 “易语言文本数组排序模块源码”是一个易语言程序,它提供了对文本数组进行排序的算法实现。...
常见的排序算法有冒泡排序、选择排序、插入排序、快速排序等。易语言中可以使用内置的“排序数组”命令,但可能需要提供比较函数来处理自定义数据类型。 ```易语言 .子程序 比较产品, 产品, 产品 如果 第1个参数....
冒泡排序是最基础的排序算法之一,通过重复遍历待排序的数组,比较相邻元素并交换顺序,使较大的元素逐渐“冒”到数组的末尾。其主要步骤是:比较相邻元素,如果前一个比后一个大,则交换位置,一轮遍历后最大的...
在软件开发中,数组排序是一项基础但至关重要的任务,无论是在数据处理、数据分析还是算法实现中,都会频繁地用到。 易语言数组排序模块源码提供了对数组进行升序或降序排列的功能。数组是易语言中存储和操作数据的...
冒泡排序