冒泡排序--通过冒泡算法让数组中最大的值成为数组中最后一个值

var nums = [];//定义一个空数组
    for(var i=0;i<5;i++){//要用户输入五个数字,就循环5次
        nums[i] = parseInt(prompt(‘请输入数字‘));//使用for循环,prompt提示的方法提示用户输入数字
    }
    console.log(‘用户输入的是:‘);
    console.log(nums);//打印出用户输入的全部数字

    for(var i=0;i<nums.length-1;i++){
        for(var j=0;j<nums.length-1-i;j++){
            if(nums[j]>nums[j+1]){//索引为0的数字和索引为1的数字相比,以此类推  如果排序为降序,就为nums[j]<nums[j+1]
                var temp;//定义一个变量,用来存放
                temp=nums[j];//先把数字较大的数,放在temp里面
                nums[j]=nums[j+1];//再把数字小的放在数字大的里面
                nums[j+1]=temp;//把temp里面数字较大的放在原本数字较小的里面
            }
        }
    }
    console.log(nums);

 这里的temp解释一下,比如你有一杯牛奶和一杯咖啡,你想把牛奶倒进装咖啡的杯子里,这时必须要拿另一个杯子出来,先讲牛奶倒进空杯子(这个空杯子就是temp),再把咖啡装进牛奶的杯子里,最后把新拿出来的杯子里面的牛奶倒进咖啡的杯子里 。

时间: 2024-10-12 12:42:04

冒泡排序--通过冒泡算法让数组中最大的值成为数组中最后一个值的相关文章

将php数组转js数组,js如何接收PHP数组,json的用法

首先下载下面这个文件(这是一段是别人写出来专门解析json的代码),然后引入这个文件! http://pan.baidu.com/s/1dD8qVr7 现在当我们需要用ajax与后台进行交互时,怎样将php的数组传送到js文件并且并js所识别? 先看php文件,当我们获取到$arr这个数组后 foreach ($arr as $value) { $json .= json_encode($value) . ','; } echo '[' . substr($json,0,strlen($json

java 数据结构 图中使用的一些常用算法 图的存储结构 邻接矩阵:图的邻接矩阵存储方式是用两个数组来标示图。一个一位数组存储图顶点的信息,一个二维数组(称为邻接矩阵)存储图中边或者弧的信息。 设图G有n个顶点,则邻接矩阵是一个n*n的方阵,定义为: 实例如下,左图是一个无向图。右图是邻接矩阵表示:

以下内容主要来自大话数据结构之中,部分内容参考互联网中其他前辈的博客. 图的定义 图是由顶点的有穷非空集合和顶点之间边的集合组成,通过表示为G(V,E),其中,G标示一个图,V是图G中顶点的集合,E是图G中边的集合. 无边图:若顶点Vi到Vj之间的边没有方向,则称这条边为无项边(Edge),用序偶对(Vi,Vj)标示. 对于下图无向图G1来说,G1=(V1, {E1}),其中顶点集合V1={A,B,C,D}:边集合E1={(A,B),(B,C),(C,D),(D,A),(A,C)}: 有向图:若

Java - 冒泡排序的基础算法(尚学堂第七章数组)

/** * 冒泡排序的基础算法 */ import java.util.Arrays; public class TestBubbleSort1 { public static void main(String[] args) { int[] values = { 3, 1, 6, 2, 9, 0, 7, 4, 5, 8 }; int temp = 0; /* 2.调用内循环length-1次,数字逐渐实现从左到右依次向后排, * 每执行n次内循环就出现n个排好的数值,故内循环可少执行i次, 所

1.冒泡排序。2.左旋数组K次,3.将数组中偶数置前,奇数置后

冒泡排序: //无序 [0, a.length - i) // 有序 [a.length - i, a.length) // 冒泡过程 无序在前,有序在后.每次都遍历无序区间,每一次比较出一个数放在后面. public static void bubbleSort(int[] a) { for (int i = 0; i < a.length; i++) { boolean sorted = true; // 无序 [0, a.length - i) // 有序 [a.length - i, a

一天一道算法题(1)---未排序数组中累加和为给定值的最长子数组

题目 给定一个无序数组arr,其中元素可正,可负,可0,给定一个整数k.求arr所有的子数组中累加和为k的最长子数组长度. 分析 为了解答题目,引入一个概念,s(i)代表子数组arr[0..i]所有元素的累加和.那么子数组arr[j-1, i](0<=j<=i<arr.length)的累加和为s(i)-s(j-1). 1. 设置变量sum=0,表示从0位置开始一直加到i位置所有元素的和.设置变量len=0,表示累加和为k的最长子数组长度.定义一个HashMap,其中key是sum值,va

python模块之re,os,sys。冒泡算法和反射。

python内置模块之(os,sys,hashlib,re) os模块 1 os.path.dirname() # 获取文件的上一层目录名,其实就是os.path.split(path)的第一个元素 2 os.path.abspath() # 获取文件的绝对路径,包括文件名 3 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 4 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd 5 os.curdir 返回当前目录:

javascript之冒泡算法

今天看了js中数组的方法,其中sort()方法用于排序,就让我想到学C语言的时候有一个冒泡算法,就想用js写一个. <script> var arr=[1,30,20,40,21,31,10]; //orient为true时,为升序排列,为false时,为降序排列 function change(arr,orient,arrLength){ var i=0; var arrChange; for(i=0;i<(arrLength-1);i++){ if(arr[i]>arr[i+1

php冒泡算法

1.冒泡算法 网上搜了很多,但是总是对于每次循环的边界值思路讲的比较笼统.不是很容易被新手记住,我自己平时也是硬记下来的.但是对于算法,硬记,时间长了还是容易忘记,所以自己写了一次,把每次思路尽量写下来,便于理解,理解了容易加深映像,不容易忘记了. 冒泡算法,核心就是 循环比对  每次比对相邻2个数组的大小,然后把最大的数组放到后面,这样所有比对循环一次,就会把数组中最大的数放到数组最后, 然后重复循环(重复上面的比对循环):此时循环的时候 最后一个值是不需要参加循环了,因为已经确定是最大的那个

算法(1)——Java冒泡算法

Java冒泡算法算是最常见的算法之一了.那么什么是冒泡算法呢?如下图所示(图片来自网络): 其实可以看到,第一遍的遍历过程中,首先比较第一对数字,比较交换完成后第二个数字一定是比较大的,接下来比较第二对,同样进行比较交换,那么这个时候第三个数一定是较大的,这样所有的数对比较完成之后,最大的数字就会冒泡到数组的最右侧.接下来第二轮就可以把第二大的数放在右侧数第二个位置上,以此类推...当遍历一遍没有可以交换的数字的时候,就说明这个队列已经是有序的了. 1 public static void ma