一:冒泡排序法
冒泡排序法又称为狡猾排序法,是从观察水中气泡变化构思而成的,原理是从第一个元素开始,比较相邻元素的大小,如果大小顺序有误,则对调后再进行下一个元素的比较,仿佛是气泡从水底上升到水面上一样。如此扫描过一次之后就可以确保最后一个元素位于正确的顺序,接着逐步进行第二次扫描,直到完成所有元素的排序为止。
举个栗子:
第一次扫描:
第二次扫描:
第二次扫描也是从头比较,但因为最后一个元素在第一次扫描时就确定是数组中最大值,所以只需要比较三次就可以把剩下数组元素的最大值排到剩余数组的后边
第三次和第四次也是相同。
由此可知,5个元素的冒泡排序法必须执行5-1次扫描,第一次扫描需要比较5-1次,第二次是5-1-1次,共比较4+3+2+1=10次
var data=[16,25,39,27,12,8,45,63];
console.log('原始数据:')
for(i = 0;i<8;i++) {
process.stdout.write(data[i]+' ');
}
console.log();
for(i=7;i>0;i--) {
for(j=0;j<i;j++) {
if(data[j]>data[j+1]) {
temp = daata[j]
data[j]= data[j+1]
data[j+1]=temp
}
}
process.stdout.write ('第'+(8-i)'次排序的结果是:')
for(j=0;j<8;j++) {
process.stdout.write(data[j]+' ')
console.log();
}
console.log(’‘排序结果为:)
for(j=0;j<8;j++) {
process.stdout.write(data[j]+ ' ')
console.log()
}