冒泡排序:
通过对相邻元素的对比,并交换位置,一步一步的把一个元素给挑选出来。
我们可以使用两层嵌套的for循环来实现这个过程,也就是实现冒泡排序:
//外层控制轮数 for(var i=0;i<len;i++){ //内层对数组元素进行冒泡选择 for(var j=0;j<len-1-i;j++){ //交互元素 if(arr[j] > arr[j+1]){ var temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } }
下面是冒泡排序的完整代码。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title>冒泡排序</title> <meta name="keywords" content="关键字列表" /> <meta name="description" content="网页描述" /> <link rel="stylesheet" type="text/css" href="" /> <style type="text/css"></style> <script type="text/javascript"> //参数数字数组 function bubble(arr){ //检查参数 if(toString.call(arr) !== ‘[object Array]‘){ return false; } //获取数组长度 var len = arr.length; if(len <= 1){//小于1不用排序 return arr; } //外层控制轮数 for(var i=0;i<len;i++){ //标记是否有排序的元素 var mark = true; //内层对数组元素进行冒泡选择 for(var j=0;j<len-1-i;j++){ //交互元素 if(arr[j] > arr[j+1]){ mark = false; var temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } if(mark){ //当没有进行冒泡选择时,证明已经排序好了 return arr; } } } //测试 var ar = [9,3,7,4,8,2,5,1,6,0]; alert(bubble(ar)); </script> </head> <body> </body> </html>
时间: 2024-12-22 05:25:47