十大经典排序

  1. 冒泡排序
    个人理解:拿相邻的元素进行比较 将较大值进行交换 通过一次完整的循环 得到该轮的最大值(小值)放在最后一位 通过多轮比较得出最终排序结果
 	for (var i = 0; i < len - 1; i++) {
        for (var j = 0; j < len - 1 - i; j++) {
            if (arr[j] > arr[j+1]) {        // 相邻元素两两对比
                var temp = arr[j+1];        // 元素交换
                arr[j+1] = arr[j];
                arr[j] = temp;
            }
        }
  1. 选择排序
    个人理解:第一次选择第一个元素依次与之后元素进行比较得出大值或者小值 进行交换 放在第一位 通过一轮可以确定第一个元素是最大值或者最小值
for (var i = 0; i < len - 1; i++) {
        minIndex = i;
        for (var j = i + 1; j < len; j++) {
            if (arr[j] < arr[minIndex]) {     // 寻找最小的数
                minIndex = j;                 // 将最小数的索引保存
            }
        }
        temp = arr[i];
        arr[i] = arr[minIndex];
        arr[minIndex] = temp;
    }
  1. 插入排序
    从第一个元素开始,该元素可以认为已经被排序;从第二个元素开始依次和之前位置的元素进行比较然后插入其中
for (var i = 1; i < len; i++) {
        preIndex = i - 1;
        current = arr[i];
        while (preIndex >= 0 && arr[preIndex] > current) {
            arr[preIndex + 1] = arr[preIndex];
            preIndex--;
        }
        arr[preIndex + 1] = current;
    }

4.希尔排序
头大 不看了

5.归并排序
把长度为n的输入序列分成两个长度为n/2的子序列;先使每个子序列有序,再将两个有序表合并成一个有序表,

发布了16 篇原创文章 · 获赞 0 · 访问量 834

猜你喜欢

转载自blog.csdn.net/weixin_45830683/article/details/105248216