js之三类(冒泡,插值,二分)排序算法
2016-05-25 15:48
375 查看
1.冒泡排序:
代码:
<script>
var arr=[12,23,56,34,89,95];
window.onload=function(){
var len=arr.length;
for( var i=0;i<len;i++){
for( var j=i+1;j<len;j++){
if(arr[i]>arr[j]){
var temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
for( var i=0;i<len;i++){
document.write(arr[i]);
document.write(";");
}
}
</script>
结果:
2.插值法
代码:
<script>
var arr=[3,8,89,78,34,56,18,45];
window.onload=function(){
var arrSort=[];
arrSort[0]=arr[0];
var flag=0;
for(var i=1;i<arr.length;i++){
flag=0;
for(var j=0;j<arrSort.length;j++){
if(arr[i]<arrSort[j]){
arrSort.splice(j,0,arr[i]);
flag=1;
break;
}
}
if(flag==0){
arrSort.push(arr[i]);
}
}
for(var i=0; i<arrSort.length;i++){
document.write(arrSort[i]);
document.write(";");
}
}
</script>
结果:
3.二分法:
代码
<script>
var arr=[90,45,34,67,54,8,67,32];
window.onload=function(){
var nArr=[];
nArr[0]=arr[0];
var len =arr.length;
var left=0;
var right=0;
var point=0;
for(var i=1; i<len;i++){
left=0;
var nlen=nArr.length;
right=nlen;
for(var j=0;j<nlen; j++){
point =Math.floor((left+right)/2);
if(nArr[point]<arr[i]){
left=point+1;
}else{
right=point;
}
if(left==right){
nArr.splice(left,0,arr[i]);
break;
}
}
}
for(var i=0;i<nArr.length;i++){
document.write(nArr[i]);
document.write(";");
}
}
</script>
结果:
代码:
<script>
var arr=[12,23,56,34,89,95];
window.onload=function(){
var len=arr.length;
for( var i=0;i<len;i++){
for( var j=i+1;j<len;j++){
if(arr[i]>arr[j]){
var temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
for( var i=0;i<len;i++){
document.write(arr[i]);
document.write(";");
}
}
</script>
结果:
2.插值法
代码:
<script>
var arr=[3,8,89,78,34,56,18,45];
window.onload=function(){
var arrSort=[];
arrSort[0]=arr[0];
var flag=0;
for(var i=1;i<arr.length;i++){
flag=0;
for(var j=0;j<arrSort.length;j++){
if(arr[i]<arrSort[j]){
arrSort.splice(j,0,arr[i]);
flag=1;
break;
}
}
if(flag==0){
arrSort.push(arr[i]);
}
}
for(var i=0; i<arrSort.length;i++){
document.write(arrSort[i]);
document.write(";");
}
}
</script>
结果:
3.二分法:
代码
<script>
var arr=[90,45,34,67,54,8,67,32];
window.onload=function(){
var nArr=[];
nArr[0]=arr[0];
var len =arr.length;
var left=0;
var right=0;
var point=0;
for(var i=1; i<len;i++){
left=0;
var nlen=nArr.length;
right=nlen;
for(var j=0;j<nlen; j++){
point =Math.floor((left+right)/2);
if(nArr[point]<arr[i]){
left=point+1;
}else{
right=point;
}
if(left==right){
nArr.splice(left,0,arr[i]);
break;
}
}
}
for(var i=0;i<nArr.length;i++){
document.write(nArr[i]);
document.write(";");
}
}
</script>
结果:
相关文章推荐
- jsbin-jsfiddle-or-codepen-which-one-to-use-and-why
- 在js里获取动态的id,形如$("#动态id")
- js脚本加载顺序
- JSP总结(经典)
- jsp/html简单的打印功能实现
- Gson解析或者转换对象成json字符串时,String为NULL转空字符串处理方案
- js 判断键盘事件大全 兼容FireFox和IE(退格、制表、回车、空格、方向键、删除键等)
- JS获取URL参数的函数
- 离开页面前调用Js方法
- js数组去重,合集等操作
- HTML5的自定义属性data-*详细介绍和JS操作实例
- jsx编译器 atom
- JS获取当前时间
- javaScript装饰模式
- 动态创建表格,更新、提交、循环获取表格中各种元素的数据 并转换为JSON,数组的数据格式。
- Javascript技术之详尽解析event对象
- js表单验证控制代码大全
- JS表单验证
- Ajax跨域和JSONP
- javascript:en(de)codeURI、en(de)codeURIComponent、(un)escape、btoa(atob)