冒泡排序
选择排序
插入排序
对于好久都不清楚的排序今天理了一下,包括冒泡排序、选择排序、插入排序,写完这个再看看和快速排序的区别。感觉大学学的都还给老师了。
----冒泡
/* 现在有 数组 arr=[4,9,7,1,3] 相邻值之间进行对比,前者比后者大,则进行互换,每一次都会把最大的放到最后面 4 | 9 | 7 | 1 | 3 第一轮 4 | 7 | 1| 3 | 9 第二轮 4 | 1 | 3 | 7 | 9 第三轮 1 | 3 | 4 | 7 | 9 第四轮 1 | 3 | 4 | 7 | 9 *
冒泡排序的具体代码
var arr=[4,9,7,1,3]; maopao(arr); function maopao(arr){ for(var i=0;i<arr.length-1;i++){ //循环次数是length-1 for(var j=0;j<arr.length-i-1;j++){//内部循环 if(arr[j]>arr[j+1]){ var temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } console.log(‘冒泡排序‘+arr); }
----选择排序
/* 现在有 数组 arr=[4,9,7,1,3] 假设 i下表对应的值是最小值,然后,分别和数组中的每一个值进行对比 4 | 9 | 7 | 1 | 3 第一轮 1 | 7 | 4| 3 | 9 第二轮 1 | 3 | 7 | 4 | 9 第三轮 1 | 3 | 4 | 7 | 9 第四轮 1 | 3 | 4 | 7 | 9 */
var arr=[4,9,7,1,3]; xuanzepaixun(arr); function xuanzepaixun(arr){ for(var i=0;i<arr.length-1;i++){ for(var j=i+1;j<arr.length;j++){ var min=i; //假设下标为i的值是最小值 if(arr[min]>arr[j]){ //分别和数组中的值依次进行对比 var temp=arr[j]; arr[j]=arr[min]; arr[min]=temp; } } } console.log(‘选择排序‘+arr) }
---插入排序
/* 现在有 数组 arr=[4,9,7,1,3] 把下标为i的值分别与下标i前面的值进行对比进行从小到大排序 4 | 9 | 7 | 1 | 3 第一轮 4 | 9 | 7 | 1 | 3 第二轮 4 | 7 | 9 | 1 | 3 第三轮 1 | 4 | 7 | 9 | 3 第四轮 1 | 3 | 4 | 7 | 9 */ var arr=[4,9,7,1,3]; charupaixu(arr); function charupaixu(arr){ for(var i=1;i<arr.length;i++){ var num=arr[i]; var j=i; while(arr[j-1]>num){ arr[j]=arr[j-1]; --j; } arr[j]=num; } console.log(arr); }
---小结
冒泡、选择、插入排序,最大的不同就是数据不同数据之间对比方式不同,结果都一样。
时间: 2024-10-01 05:50:32