Javascript 氣泡排序
最基本的題目:一個陣列,未知長度,按從小到大的順序進行排列;現在用基本的氣泡排序方法進行排序!
一種思路是先把大的往後排,陣列呈逐步減少的狀態,排序的過程為:
i=0時,j=0,j<5,j++
8 3 6 1 -2
3 8 6 1 -2
3 6 8 1 -2
3 6 1 8 -2
3 6 1 -2 8
i=1時,j=0,j<4,j++
3 6 1 -2 8
3 6 1 -2 8
3 1 6 -2 8
3 1 -2 6 8
i=2時,j=0,j<3,j++
3 1 -2 6 8
1 3 -2 6 8
1 -2 3 6 8
i=3時,j=0,j<2,j++
1 -2 3 6 8
-2 1 3 6 8
i=4時,j=0,j<1,j++
-2 1 3 6 8
-2 1 3 6 8
具體的實現程式碼是:
var arr = [8,3,6,1,-2];
var temp;
var count=0;
for(var i=0; i<arr.length; i++)
{
for (var j = 0; j < arr.length-i; j++)
{
if (arr[j + 1] < arr[j])
{
temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
count++;
//alert("i:"+i+"j:"+j);
}
}
}
document.write(arr);
document.write("總共迴圈了"+count);//9
另外一種思路是把小的元素往前排,再比較的時候就比較剩下的元素就可以了,i=0先把-2給換到最前邊,i=1把1網籤拽,陣列就剩下8 3 6了 ,陣列就越來越小了!
var arr = [8,3,6,1,-2];
var temp;
var count=0;
for(var i=0; i<arr.length; i++)
{
for (var j =arr.length-1; j >= i; j--)
{
if (arr[j + 1] < arr[j])
{
temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
count++;
}
//alert("i:"+i+"j:"+j);
}
}
document.write(arr);
document.write("總共迴圈了"+count);//9
當然這兩種思路都是冒泡法,5個不重複的元素,迴圈了9次相關文章
- JavaScript氣泡排序JavaScript排序
- 排序——氣泡排序排序
- 氣泡排序排序
- 9. 氣泡排序,以及如何優化氣泡排序,氣泡排序屬於插入排序排序優化
- 排序:氣泡排序&快速排序排序
- js氣泡排序JS排序
- 氣泡排序1排序
- 氣泡排序-fusha排序
- 氣泡排序演示排序
- Shell氣泡排序排序
- d氣泡排序排序
- 容器氣泡排序排序
- 氣泡排序法排序
- 氣泡排序(Java)排序Java
- Python 氣泡排序Python排序
- 一篇文章搞定javascript氣泡排序JavaScript排序
- 淺析氣泡排序排序
- 陣列氣泡排序陣列排序
- Python_氣泡排序Python排序
- 氣泡排序筆記排序筆記
- 氣泡排序(python版)排序Python
- 19_氣泡排序排序
- 函式氣泡排序函式排序
- 排序演算法--氣泡排序排序演算法
- 排序演算法__氣泡排序排序演算法
- 排序演算法–氣泡排序排序演算法
- 選擇排序和氣泡排序排序
- 氣泡排序與選擇排序排序
- 【排序】氣泡排序(待補充)排序
- JavaScript氣泡排序+Vue視覺化冒泡動畫JavaScript排序Vue視覺化動畫
- 氣泡排序 插入排序 快排排序
- Python實現氣泡排序Python排序
- 如何優化氣泡排序?優化排序
- JAVA基礎--氣泡排序Java排序
- js氣泡排序動畫JS排序動畫
- Java實現氣泡排序Java排序
- C語言之氣泡排序C語言排序
- OJ題之氣泡排序排序
- 氣泡排序及優化排序優化