pwstrick / daily

一份搜集的前端面试题目清单、面试相关以及各类学习的资料(不局限于前端)
2.39k stars 242 forks source link

选择排序 #986

Open pwstrick opened 4 years ago

pwstrick commented 4 years ago
function selectSort(arr) {
  var len = arr.length,
    p, tmp;
  //外层控制轮数
  for (var i = 0; i < len - 1; i++) {
    p = i;      //先假设最小值的位置
    //内层控制比较次数,比较i后边的元素
    for (var j = i + 1; j < len; j++) {
      //arr[p]是当前已知的最小值
      if (arr[p] > arr[j]) {
        //比较发现更小的,就记录下最小值的位置
        p = j;
      }
    }
    //如果发现最小值的位置与当前假设的位置i不同,则位置互换
    if (p != i) {
      tmp = arr[p];
      arr[p] = arr[i];
      arr[i] = tmp;
    }
  }
  return arr;
}