大型資料排序

2021-09-24 11:52:46 字數 1966 閱讀 9978

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系統使用效能。本 根據作者多年從事資料庫設計的一些經驗,闡述了資料庫設計時的一些準則。隨著市場競爭的加劇和資訊社會需求的發展,人們對資訊的處理 獲取 發布 ...