排序

插入排序

直接插入排序

是最简单的排序方法,原理是将一个记录插入到已排好序列的有序表中,从而得到一个新的有序表。把第1个记录看成是一个有序的子序列,然后从第二个记录开始逐个进行插入,直到整个序列变成按关键字非递减有序序列位置。
假设有个序列为:49、38、65、97、76、13、27、49,我们把49作为一个有序序列的子序列,然后从第二个开始插入。
i = 1 [38] 38、49、65、97、76、13、27、49
i = 2 [38] 38、49、65、97、76、13、27、49
i = 3 [38] 38、49、65、97、76、13、27、49
i = 4 [76] 38、49、65、76、97、13、27、49
i = 5 [13] 13、38、49、65、76、97、27、49
i = 6 [27] 13、27、38、49、65、76、97、49
i = 7 [49] 13、27、38、49、49、65、76、76

  1. function sort(arr) {
  2. for (let i = 2; i < arr.length; ++i) {
  3. if (arr[i] < arr[i - 1]) {
  4. arr[0] = arr[i];
  5. arr[i] = arr[i - 1];
  6. }
  7. let j;
  8. for (j = i - 2; arr[0] < arr[j]; --j) {
  9. arr[j + 1] = arr[j];
  10. }
  11. arr[j + 1] = arr[0];
  12. }
  13. }

快速排序

选择排序

冒泡排序

归并排序

回文字符串

实现一个函数,判断输入是不是回文字符串?
回文字符串就是正过来,反过来都一样

  1. /**
  2. * 回文字符串判断
  3. * @param str 要判断的字符串
  4. */
  5. function palindrome(str) {
  6. if (typeof str !== 'string') {
  7. return false;
  8. }
  9. return str === str.split('').reverse().join();
  10. }