JavaSript中排序算法(一)
来源:互联网 发布:网站通用域名有用吗 编辑:程序博客网 时间:2024/06/11 19:37
1、重排序
数组中有两个可以直接用来重排序的方法:reverse(),sort()。sort()按升序排列数组项,sort()方法会调用每个数组项的toString()方法,比较得到的字符串,但在实际比较中5虽然小于10,由于进行的是字符串比较(比较字符的ASCII编码的大小),10是排在5的前面的,这是不正确的做法,因此sort()方法可以接收一个比较函数作为参数,reverse()方法也是类似的,它是降序排列数组项。
<script type="text/javascript"> function sortfun(a,b) { if(a < b) return -1; else if(a > b) return 1; else return 0; } function sortfun2(a,b){ return a - b; } var arr = [10,14,11,5,8,24,45,99]; document.write("排序前的数组:"+'<br>'+arr+'<br>'); arr.sort(sortfun); document.write("正序排序后的数组:"+'<br>'+arr+'<br>'); arr.reverse(sortfun2); document.write("逆序排序后的数组:"+'<br>'+arr); </script>
2、冒泡排序
冒泡排序是将相邻的元素进行比较,如果这两个元素相等则不进行操作,如果这两个元素失序,则互换位置, 以此类推,直到比较n-1和第n个数,那么第一轮比较结束,这第n个数一定是最大数(如果按升序排列),依次进行下一轮的比较,直到n-1轮,所有的数就比较好了。
<script type="text/javascript"> function sort(arr){ for(var i = 0; i < arr.length;i++) { for(var k = 0; k < arr.length-i-1; k++){ if(arr[k]>arr[k+1]){ var temp = arr[k+1]; arr[k+1] = arr[k]; arr[k] = temp; } } } return arr; } var arr = [10,14,11,5,8,24,45,99]; document.write("排序前的数组是:"+'<br>'+arr+'<br>'); document.write("排序后的数组是:"+'<br>'+sort(arr)); </script>
3、插入排序
从第一个元素开始认为该元素是已排序的,取出下一个元素,在已排序的元素中从后向前扫描,直到找到合适的位置将该元素插入。
<script type="text/javascript"> function insertSort(ary){ for(var i=1;i<ary.length;i++){ var k = ary[i]; var j=i-1; while(j>=0&&ary[j]>k){ ary[j+1]=ary[j]; j--; } ary[j+1]=k; } return ary; } var arr = [10,14,11,5,8,24,45,99]; document.write("排序前的数组是:"+'<br>'+arr+"<br>"); document.write("排序后的数组是:"+'<br>'+insertSort(arr)); </script>
0 0
- JavaSript中排序算法(一)
- JavaSript对象(一)
- 排序算法(一)
- 排序算法(一)
- 排序算法(一)
- 排序算法(一)
- 排序算法(一)
- 排序算法(一)
- 排序算法(一)
- 排序算法(一)
- 排序算法(一)
- 排序算法 (一)
- 算法(一):排序
- 排序算法(一)
- javasript 幻灯,修改中
- DWR详解——会变魔术的Javasript(一)
- java中排序算法的实现(一)
- 学习JAVA中(一) 一些简单的排序算法
- 机房重构之思路整理
- Ajax简介
- MySQL锁详解
- pandas的数据类型之Series,DataFrame
- IO多路复用select函数
- JavaSript中排序算法(一)
- java-------华为机试-----------进制转化
- ValueError: insecure string pickle简单解决方案
- JavaScript基础
- 多线程在项目中的运用
- C#用ComboBox实现模糊搜索 解决各种细节问题
- 【IMWeb训练营作业】Vue.js入门练习demo之select下拉菜单
- 杨辉三角与二项式定理
- css3的一些总结