冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
下面是基于js的冒泡排序写法
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>冒泡排序</title>
</head>
<body>
</body>
<script type="text/javascript">
var arr=[23,67,2,90,39,10,83,57,41,13];
function BubbleSortUp(arr){ //从小到大排序
for(var i=0;i<arr.length;i++){
for(var j=0;j<arr.length-1;j++){
if(arr[i]<arr[j]){
arr[i]=arr[i]+arr[j];
arr[j]=arr[i]-arr[j];
arr[i]=arr[i]-arr[j];
}
}
}
console.log(arr);
}
function BubbleSortDown(arr){ //从大到小排序
for(var i=0;i<arr.length;i++){
for(var j=0;j<arr.length-1;j++){
if(arr[i]>arr[j]){
arr[i]=arr[i]+arr[j];
arr[j]=arr[i]-arr[j];
arr[i]=arr[i]-arr[j];
}
}
}
console.log(arr);
}
BubbleSortUp(arr);
BubbleSortDown(arr);
</script>
</html>
结果: