前端-简单选择排序

2018-09-07  本文已影响14人  FConfidence
  1. 简单选择排序

    假设排序表为L[1...n] 第i趟排序即从L[i...n]中选择关键字最小的元素与L[i]进行交换, 每一趟排序可以确定一个元素的最终位置
    这样, 经过n-1趟排序就可以使得整个排序表有序

    • 空间: O(1)
    • 时间: O(m^2)
    • 稳定性: 不稳定
    • 元素的比较次数 n(n-1)/2
function SimpleSort(arr) {
  let i, j, len = arr.length,
    temp;
  let min; // 记录当前遍历过程中最小的元素的索引
  for (i = 0; i < len - 1; i++) {
    min = i;
    for (j = i + 1; j < len; j++) {
      if (arr[j] < a[min]) {
        min = j;
      }
    }
    // 找到当前遍历中最小的元素的索引为i
    if (min != i) { // 保证当前元素不为当前最小元素的时候才进行交换
      temp = arr[min];
      arr[min] = arr[i];
      arr[i] = temp;
    }
  }
}

var a = [5, 2, 4, 3, 8, 6, 9, 0, 1, 7];
SimpleSort(a);
console.log(a);
上一篇 下一篇

猜你喜欢

热点阅读