1、 冒泡排序,將數組從小到大排序,即從數組左邊開始相鄰兩個元素比較大小和交換位置。 <script> // 冒泡排序,從小到大。 var arr = [41, 21, 12, 52, 67, 32, 23]; var outer = 0, inner = 0; for (var j = 0; j ...
1、 冒泡排序,將數組從小到大排序,即從數組左邊開始相鄰兩個元素比較大小和交換位置。
<script>
// 冒泡排序,從小到大。
var arr = [41, 21, 12, 52, 67, 32, 23];
var outer = 0, inner = 0;
for (var j = 0; j < arr.length - 1; j++) {
// 聲明flag作用是判斷數組內元素是否從小到大排列好,是就跳出當前迴圈。
var flag = true;
// i < arr.length -1變為i < arr.length - 1 - j,此處優化去除了一些重覆操作。
for (var i = 0; i < arr.length - 1 - j; i++) {
if (arr[i] > arr[i + 1]) {
var temp = arr[i + 1];
arr[i + 1] = arr[i];
arr[i] = temp
flag = false;
}
inner++;//內層迴圈次數
}
if (flag) {
break;
}
outer++;//外層迴圈次數
}
console.log(arr);
console.log(inner);
console.log(outer);
</script>
2、 選擇排序,將數組從小到大排序,即依次取出數組中最小值,然後依次放入新的數組中並將它們從原數組中去除掉。
<script>
// 選擇排序,從小到大
var arr = [65,97,76,13,27,49,58 ];
var newArr = [];
for(var i=0;i<arr.length;i++) {
var min = arr[0];
var minIndex = 0;
for(var j=0;j<arr.length;j++) {
if(min > arr[j]) {
min = arr[j];
minIndex = j;
}
}
newArr[newArr.length] = min;
arr[minIndex] = 100;//相當於將arr中的最小值去除
}
console.log(newArr);
</script>
3、 插入排序
<script>
var arr = [5, 4, 6, 2, 1];
// 從第二個開始往後
for (var i = 1; i < arr.length; i++) {
var temp = arr[i];
// 從第i個往前 只要比你小 就讓你往後移動 讓第i個插到合適位置
for (var j = i - 1; j >= 0 && arr[j] > temp; j--) {
arr[j + 1] = arr[j];
// console.log("j現在是" + j);
// console.log("內迴圈" + arr[j + 1]);
// console.log("內迴圈" + arr);
}
arr[j + 1] = temp;
// console.log("j現在是" + j);
// console.log("外迴圈" + arr[j + 1]);
// console.log("外迴圈" + arr);
}
console.log(arr);
</script>
4、 運算符的優先順序,優先順序從高到底
a) () 優先順序最高
b) 一元運算符 ++ -- !
c) 算數運算符 先* / % 後 + -
d) 關係運算符 > >= < <=
e) 相等運算符 == != === !==
f) 邏輯運算符 先&& 後||
5、 number類型的浮點數在算數計算時不准確,如var result = 0.1 + 0.2;的計算結果不是0.3,而是0.30000000000000004。不要判斷浮點數是否相等,不過判斷範圍還是可以的。