算法1 -- 排序 FCC初級算法題

①.冒泡排序css

// 冒泡排序,比較相鄰的元素由小到大排序
function bubbleSort(arr) {
  let i = j = 0;
  for(i=1;i<arr.length;i++) {
      for(j=0;j<=arr.length-i;j++){
          let temp = 0;
          // 前一個大於後一個,二者互換位置
          if(arr[j]>arr[j+1]){
              temp = arr[j];
              arr[j] = arr[j+1];
              arr[j+1] = temp;
          }
      }
  }
  return arr;
}
View Code

冒泡排序

 

②.快速排序  (圖解)html

以基數爲標準,最右開始查小於基數中止,最左邊開始查大於基數中止,互換位置中止的位置;left=right表示基數左爲小於基數,基數右大於基數的;拆分基數左右在小組比,直到arr.length < 2;算法

var arr=[5,7,2,9,3,8,4,7,1];
// 每次選擇最左邊的數做爲基數
function quickSort(arr){
  // 數組只有1個數
  if (arr.length<2) { return arr; }

  // 定義左指針,右指針
  let left=0,right=arr.length-1;

  //開啓每一輪的排序
  while(left<right){
    // 尋找右邊比arr[0]小的數的下標
    while(arr[right]>=arr[0] && left<right){
      right=right-1;
    }
    // 尋找左邊比arr[0]大的數的下標
    while(arr[left]<=arr[0] && left<right){
      left++;
    }
    //當左邊指針與右邊指針相遇後,交換arr[0]與當前兩個指針所在的元素
    if (right==left) {
      let mid=arr[right];
      arr[right]=arr[0];
      arr[0]=mid;
      break;
    }
    // 當左指針小於右指針的位置,交換兩個指針當前位置的元素
    let tem=arr[right];
    arr[right]=arr[left];
    arr[left]=tem;
  }
  
  //遞歸實現
  return quickSort(arr.slice(0,left)).concat(arr.slice(left,right+1)).concat(quickSort(arr.slice(right+1)));
}
//對數組進行排序
console.log(quickSort(arr));
View Code

 基數6數組

 

 ③.二路歸併(分治算法思想)app

將兩個按值有序序列合併成一個按值有序序列,則稱之爲二路歸併排序ide

function merge(left, right) {
  var result = [];

  while (left.length && right.length) {
    if (left[0] < right[0]) {
      result.push(left.shift());
    } else {
      // left[0] >= right[0]
      result.push(right.shift());
    }
  }
  return result.concat(left, right);
}

function mergeSort(arr) {
    // 數組長度爲一返回結果
  if (arr.length === 1) { return arr; }

  // 造一個空數組,把舊數組每一個值轉換爲數組,並賦予空數組(深拷貝)
  var work = [];
  for (var i = 0, len = arr.length; i < len; i++) {
    work.push([arr[i]]);
  }
    
  work.push([]); // 若是數組長度爲奇數
  for (var lim = len; lim > 1; lim = ~~((lim + 1) / 2)) {
    // k+=2是要兩兩比較,並把比較的兩位數推動進新的數組
    for (var j = 0, k = 0; k < lim; j++, k += 2) {
      work[j] = merge(work[k], work[k + 1]);
    }
    work[j] = []; // 若是數組長度爲奇數
  }

  return work[0];
}
/*
[1,5,3,4]
// 分
[1][5],[6][4]
[1,5],[4,6]
// 合循環
[1,4,5,6]
*/
console.log(mergeSort([1, 5, 6, 4, 84, 0, 8, 8, 4]));
View Code

 

 

 

 

 

 

階乘:小於及等於該數的正整數的積(n! = 1*2*3*4...*n)post

 

 

FCC初級算法題

 https://www.freecodecamp.cn/字體

 

1.ui

Web開發者一般用lorem ipsum text來作佔位符,佔位符就是佔着位置的一些文字,沒有實際意義。搜索引擎

爲何叫lorem ipsum text呢?

是由於lorem ipsum是古羅馬西塞羅諺語的前兩個單詞。

從公元16世紀開始lorem ipsum text就被當作佔位符了,這種傳統延續到了互聯網時代。

於此同時,孫悟空也在五指山下壓了500年,而後就進化成程序猿了,是否是很巧合,哈哈。

2.

80-20原則

3.family

MonospaceSerifSans-Serif

<link href="https://fonts.gdgdocs.org/css?family=Lobster" rel="stylesheet" type="text/css">  google字體

 

6

alt屬性,也被稱爲alt text, 是當圖片沒法加載時顯示的替代文本。alt屬性對於盲人或視覺損傷的用戶理解一幅圖片中所描繪的內容很是重要,搜索引擎也會搜索alt屬性。

簡而言之,每一張圖片都應該有一個alt屬性!

 

5

給你的輸入框添加required屬性,這樣用戶不填寫輸入框就沒法提交表單。

 

6

body {
background-color: black;
}

 

7

hexadecimal code(十六進制編碼),簡寫爲 hex code

decimals,也就是十進制數字

https://en.wikipedia.org/wiki/Hexadecimal       十六進制數字的信息

相關文章
相關標籤/搜索