说一下选择排序的基本算法 。 现在有这样一个数组,[ 3 , 4 ,6 , 1 , 7 , 2 , 5 , 8] 我们对其进行从小到大的排序 。 现在我们默认数组中第一个元素就是数组中的最小值,将它与其后边的所有元素进行比较,当有元素的值小于当前默认最小元素时,交换这两个元素的顺序。
当数组第一个元素小于后边所有元素时,我们再用数组第二个元素与后面所有元素进行比较。依次类推,这样我们执行到第n轮,前n个数均是已经排好序的。
var arr=[3,4,6,1,7,2,5,8];
for(var i=0;i<arr.length-1;i++) //arr[ i] 代表当前拿出来做比较的数
{ // 从第一个开始拿 ,一直拿到length-1个
// 因为当执行到length-1次,数组前length-1个元素
//是已经排好序的。
for(var j=i+1;j<arr.length;j++)
{
if(arr[i]>arr[j]) // arr[j] 代表从当前拿出的数往后所有的数
{
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
算法复杂度o(n²) ;