哈希表
对于一个纯数字数组a[],一个Hashell[]
数组a是一个乱序数组
数组hashell是一个空数组
第一个循环遍历数组a 并将数组a中每一个值所对应的Hashell的a[i]的值所对应的Hashell位置的值+1
得到一个Hashell数组,这个数组中的位置上的值便是数组a的值出现的频率。
function hxsort(arr_o) {
let arr_sorted = [];
let hxarr = [];
let i, j, v;
document.write("哈希数组开始写入!" + "<br/>")
for (i = 0; i < arr_o.length; i++) {
// hxarr[arr_o[i]]++;
v = arr_o[i]
hxarr[v] = 0;
hxarr[v]++
// document.write("原数组第" + i + "元素为" + arr_o[i] + "<br/>")
}
// console.log(hxarr.length);
document.write("得到哈希数组的长度为:"+hxarr.length +"<br/>"+"该哈希数组为:")
for(i=0;i<hxarr.length;i++){
document.write(hxarr[i]+",");
}
for (j = 0; j<hxarr.length; j++) {
if (hxarr[j] > 0) {
arr_sorted.push(j)
document.write("数据写入中..."+"<br/>");
}
}
document.write("排序后的数组为:")
for(i=0;i<arr_sorted.length;i++){
document.write(arr_sorted[i]+",")
}
return arr_sorted;
}
//上述代码便是一个哈希排序



京公网安备 11010502036488号