1.氣泡排序
/**
* 置換函式
* @param arr
* @param indexa
* @param indexb
* 耗時:377ms
*/function swap(arr, indexa, indexb)
function bubblesort1(arr)
}} return arr;
}
/**
* 利用索引優化後的氣泡排序
* @param arr
* 耗時:350ms
*/function bubblesort2(arr)
}i = pos;
} return arr;
}
/**
* 在每趟排序中進行正向和反向兩遍冒泡 ,
* 一次可以得到兩個最終值(最大和最小),
* 從而使外排序趟數大概減少了一半
* @param arr
* 耗時:312ms
*/function bubblesort3(arr)
}end = endpos;
for (let i = end; i > start; i--)
}start = startpos;
} return arr;
}
2.插入排序
* @param arr
* 耗時:897ms
*/ function insertionsort(arr)
arr[preindex + 1] = temp;
} return arr;
}
改造二分查詢,查詢小於value且離value最近的值的索引
* @param arr
* @param maxindex
* @param value
*/ function binarysearch1(arr, maxindex, value) else
} return min;
}
/**
* 使用二分法來優化插入排序
* @param arr
* 耗時:86ms
*/function insertionsort1(arr)
arr[insertindex] = temp;
} return arr;
}
3.希爾排序
/**
* 核心:通過動態定義的 gap 來排序,先排序距離較遠的元素,再逐漸遞進
* @param arr
* 耗時:15ms
*/function shellsort(arr)
arr[preindex + gap] = temp;
}gap = math.floor(gap / 2);
} return arr;
}
4.歸併排序
/**
* @param arr
* 耗時 30ms
*/function concatsort(arr)
const mid = math.floor(len / 2);
const left = arr.slice(0, mid);
const right = arr.slice(mid);
return concat(concatsort(left), concatsort(right));
} function concat(left, right)
return result.concat(left, right);
}
大型資料庫設計
隨著計算機技術越來越廣泛地應用於國民經濟的各個領域,在計算機硬體不斷微型化的同時,應用系統向著複雜化 大型化的方向發展。資料庫是整個系統的核心,它的設計直接關係系統執行的效率和系統的穩定性。因此在軟體系統開發中,資料庫設計應遵循必要的資料庫正規化理論,以減少冗餘 保證資料的完整性與正確性。只有在合適...
大型資料庫技術1
什麼是資料庫?在計算機系統中按照一定 的資料模型組織 儲存和使用相互關聯的資料集合。資料模型 通常是由 資料結構 資料操作 完整性約束3部分組成。資料結構 是對系統靜態特徵的描述,描述的物件包括資料的型別 內容 性質和資料之間的相互關係 資料操作 是對系統動態特徵的秒速,是對資料庫中各種物件例項的操...
大型資料庫設計原則
摘要 大型資料庫相比較於以前檔案型資料庫有著其眾多的優點,也是當今 mis系統開發的的首選產品。但是,資料庫模型的設計合理會極大地影響到 mis系統使用效能。本 根據作者多年從事資料庫設計的一些經驗,闡述了資料庫設計時的一些準則。隨著市場競爭的加劇和資訊社會需求的發展,人們對資訊的處理 獲取 發布 ...