题干:n个数字从小到大排列。
算法思路:遍历数字,将最小的数字放到起始位置,依次循环。
基本实现:
思路:用两层循环实现,外层循环控制整体遍历的次数,内层循环控制当次遍历。
var array = [65,97,76,13,27,49,58]; for(var i=0;i<array.length;i++){ var min = array[i]; for(var j=i+1;j<array.length;j++){ if(min>array[j]){ var tmp = min; min=array[j]; array[j]=tmp; } } array[i]=min; }
优化:
思路:减少交换次数,确定了最小数的位置后再交换。
var array = [65,97,76,13,27,49,58]; for(var i=0;i<array.length;i++){ var minIndex = i; for(var j=i+1;j<array.length;j++){ if(array[minIndex]>array[j]){ minIndex = j; } } if(minIndex != i){ var tmp = array[minIndex]; array[minIndex] = array[i]; array[i] = tmp; } }
原文地址:https://www.cnblogs.com/lynshxs/p/9834776.html
时间: 2024-10-08 20:46:37