冒泡排序原理详解

来源:百度文库 编辑:神马文学网 时间:2024/04/29 10:33:03

[原创]排序——冒泡排序原理详解

首先申明,这不是教程,我只是将冒泡排序原理详细解释,希望对大家有用~~~
冒泡法排序是一个比较简单的排序方法。在待排序的数列基本有序的情况下排序速度较快。若要排序的数有n个,则需要n-1轮排序,第j轮排序中,从第一个数开始,相邻两数比较,若不符合所要求的顺序,则交换两者的位置;直到第n+1-j个数为止,第一个数与第二个数比较,第二个数与第三个数比较,......,第n-j个与第n+1-j个比较,共比较n-1次。此时第n+1-j个位置上的数已经按要求排好,所以不参加以后的比较和交换操作。例如:第一轮排序:第一个数与第二个数进行比较,若不符合要求的顺序,则交换两者的位置,否则继续进行二个数与第三个数比较......。直到完成第n-1个数与第n个数的比较。此时第n个位置上的数已经按要求排好,它不参与以后的比较和交换操作;第二轮排序:第一个数与第二个数进行比较,......直到完成第n-2个数与第n-1个数的比较;......第n-1轮排序:第一个数与第二个数进行比较,若符合所要求的顺序,则结束冒泡法排序;若不符合要求的顺序,则交换两者的位置,然后结束冒泡法排序。
共n-1轮排序处理,第j轮进行n-j次比较和至多n-j次交换。
从以上排序过程可以看出,较大的数像气泡一样向上冒,而较小的数往下沉,故称冒泡法。
我给出了一个例子,大家自己看一下吧

AS为:function array_1(array) {
for (var n = 0; nfor (var j = 0; jif (array[j]temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
for (var k = 0; ktrace(array[k]);
}
trace(" ");
}
}
my_array = new Array(0, 2, 3, 9);
array_1(my_array);
看了原理,AS应该没问题了,当然大家可以通过改变数组中元素以及个数来验证程序。
希望对大家有帮助












[此贴子已经被作者于2005-8-12 13:39:33编辑过]

2005-8/200587223220914.jpg (115.26 KB)

下载次数:92

2005-8-8 06:32

 

2005-8/2005812133855710.jpg (115.26 KB)

下载次数:47

2005-8-12 21:38

 

2005-8/20058722277657.jpg (115.26 KB)

下载次数:94

2005-8-8 06:27

 

2005-8/200587222018232.jpg (115.26 KB)