冒泡排序是一次比较两个元素,如果顺序是错误的就把它们交换过来。,直到不需要再交换
快速排序的基本思想是通过一趟排序,将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可以分别对这两部分记录继续进行排序,以达到整个序列有序
从数列中挑出一个元素,称为 “基准”(pivot);然后重新排序数列,所有元素比基准值小的摆放在基准前面、比基准值大的摆在基准的后面;在这个区分搞定之后,该基准就处于数列的中间位置;然后把小于基准值元素的子数列(left)和大于基准值元素的子数列(right)递归地调用 quick 方法排序完成,这就是快排的思路
通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入,从而达到排序的效果
插入排序的思路是基于数组本身进行调整的,首先循环遍历从 i 等于 1 开始,拿到当前的 current 的值,去和前面的值比较,如果前面的大于当前的值,就把前面的值和当前的那个值进行交换,通过这样不断循环达到了排序的目的
将最小的元素存放在序列的起始位置,再从剩余未排序元素中继续寻找最小元素,然后放到已排序的序列后面……以此类推,直到所有元素均排序完毕
堆排序是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质,即子结点的键值或索引总是小于(或者大于)它的父节点。堆的底层实际上就是一棵完全二叉树,可以用数组实现
归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并
通过 mid 可以把该数组分成左右两个数组,分别对这两个进行递归调用排序方法,最后将两个数组按照顺序归并起来
var arr=[2,4,5,3,5,3,0]
var arrvalue//用于存放取出的数组的值
for(var i=0i<arr.lengthi++){
arrvalue=arr[i]//数组的索引是从0开始的
console.log(arrvalue)//把取出的值打印在控制台上
}
扩展资料:
js 获取数组中的最大值和最小值
var arr = [3,12,23,18,25,33,22,30,1]
方案一: 思想 首先对数组进行排序(小 》大),第一项为最小值,最后一项为最大值
var min
var max
arr.soft(function(a,b){return a-b})
min = arr[0]
max = arr[arr.length-1]
方案二:采用Math对象里的min()方法和 max()方法,需要将比较的数一个一个的传递进来才能比较,但是可以通过以下方式转化即可;
var min = Math.min(arr)
console.log(min) // NAN
console.log(Math.min(3,12,23,18,25,33,22,30,1)) // 1
console.log(Math.max(3,12,23,18,25,33,22,30,1)) // 33
var min =eval("Math.min(" +arr.toString()+")") // 1 采用字符串拼接
var min = eval("Math.max(" +arr.toString()+")") // 33
var min = Math.min.apply(obj,arr) // 1 利用apply方法一项一项传质的特点
var max =Math.max.apply(obj,arr) // 33
你的程序完全错误,根本不可能排序,排序的一般程序是这样的:<SCRIPT language=JavaScript>
var a=new Array(3)
a[0]=27
a[1]=17
a[2]=100
a.sort()
document.write(a+" ")
</SCRIPT>
如果要求结果是17、27、100这样的数字大小排序,应该使用下面的程序:
<SCRIPT language=JavaScript>
var a=new Array(3)
a[0]=27
a[1]=17
a[2]=100
a.sort(function(x,y){return parseInt(x)-parseInt(y)})
document.write(a+" ")
</SCRIPT>
要控制按照自己的规律进行排序,就得学会字节编写排序函数,我下面粘贴Array对象的sort方法说明,你看了就会明白,不明白再回头结合上面的例子。
Array 对象 sort 方法
描述:
返回一个元素已经进行了排序的 Array 对象。
语法:
arrayobj.sort(sortfunction)
sortfunction 参数是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。
说明:
sort 方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的 Array 对象。
如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:
负值,如果所传递的第一个参数比第二个参数小。
零,如果两个参数相等。
正值,如果第一个参数比第二个参数大。