一个姓名按照笔画排序的页面
来源:互联网 发布:手机淘宝找小二 编辑:程序博客网 时间:2024/04/28 03:13
写了一个姓名按照笔画排序的页面, 共享一下。
<body onload="readDBFile();">
<table>
<tr>
<td>
<textarea id="srcStr" cols="60" rows="20"></textarea>
</td>
<td>
<button onclick="getVal();">排序>></button>
</td>
<td>
<textarea id="descStr" cols="60" rows="20" readonly="true"></textarea>
</td>
</tr>
<tr>
<td colspan="3">
不能排序的姓名有:<font color="red"><a id="descript"></a></font>
</td>
</tr>
<tr>
<td colspan="3">
<font color="green">说 明 <br>
一、姓按字的画数多少排列。同画数内的姓字按起笔横、竖、撇、捺、折的顺序排列,画数和笔形相同的字,按字形结构,先左右形字,再上下形字,后整体字。如:同是八画的字,“明”在先,“冒”次之,“国”在后。<br>
二、姓字相同的依次看名的第二、第三字,先看画数,后看起笔顺序,再看笔形。两个字的姓名,视为第二个字为零画。<br>
三、复姓字也按第一个字笔画画数多少排列,笔画相同的按笔形顺序排列。<br>
四、姓名与姓名之间用半角逗号隔开。如:张三,李四</font>
</td>
</tr>
</table>
</body>
<script>
var ht = new HashTable();
var errorNameArr = new Array();
var nameArr = new Array();
function readDBFile()
...{
var xingStr = getXingStr();
var xingArr = xingStr.split(",");
var xingLen = xingArr.length;
for(var i=0;i<xingLen;i++)
...{
var e = new HashTableElement();
e.key = xingArr[i];
e.code = i;
ht.Insert(e);
}
}
function getVal()
...{
var xingSrc = document.all.srcStr.value;
if(xingSrc != "")
...{
var srcArr = xingSrc.split(",");
var srcLen = srcArr.length;
var errorNum = 0;
var nameNum = 0;
for(var i=0;i<srcLen;i++)
...{
var seq ;
if(srcArr[i].length >= 3 )
...{//先判断三个字的姓
seq = ht.Search(srcArr[i].substring(0,3));
if(seq == "" || seq == null)
...{
seq = ht.Search(srcArr[i].substring(0,2));
if(seq == "" || seq == null)
...{
seq = ht.Search(srcArr[i].substring(0,1));
}
}
}
else if(srcArr[i].length > 1 && srcArr[i].length <= 2 )
...{//先判断两个字的姓
seq = ht.Search(srcArr[i].substring(0,2));
if(seq == "" || seq == null)
...{
seq = ht.Search(srcArr[i].substring(0,1));
}
}
else if(srcArr[i].length == 1)
...{
seq = ht.Search(srcArr[i].substring(0,1));
}
if(seq == "" || seq == null)
...{
errorNameArr[errorNum] = srcArr[i];
errorNum++;
}
else
...{
var xingObj = new Object();
xingObj.name = srcArr[i];
xingObj.seq = seq + srcArr[i].length;
//nameArr[nameNum] = new Object();
nameArr[nameNum] = xingObj;
nameNum++;
}
}
//把排序后的姓名放到desc中
var nameNewArr = ShellSort(nameArr);
if(nameNewArr != null)
...{
var newLen = nameNewArr.length;
var descStr = ""
for(var i=0;i<newLen;i++)
...{
descStr = descStr + nameNewArr[i].name + ",";
}
document.all.descStr.value = descStr.substring(0,descStr.length-1);
}
//把不能排序的姓名列出来
if(errorNameArr != null)
...{
var newLen = errorNameArr.length;
var descStr = ""
for(var i=0;i<newLen;i++)
...{
descStr = descStr + errorNameArr[i] + ",";
}
document.all.descript.innerHTML = descStr.substring(0,descStr.length-1);
}
}
}
function ShellSort(arr) ...{ //插入排序->希儿排序
var st = new Date();
var increment = arr.length;
do ...{
increment = (increment/3|0) + 1;
arr = ShellPass(arr, increment);
}
while (increment > 1)
status = (new Date() - st) + ' ms';
return arr;
}
function ShellPass(arr, d) ...{ //希儿排序分段执行函数
var temp, j;
for(var i=d; i<arr.length; i++) ...{
if((arr[i].seq) < (arr[i-d].seq)) ...{
temp = arr[i]; j = i-d;
do ...{
arr[j+d] = arr[j];
j = j-d;
}
while (j>-1 && (temp.seq) < (arr[j].seq));
arr[j+d] = temp;
}//endif
}
return arr;
}
function HashTableElement()
...{
this.key = null;
this.code = null;
}
function HashTable()
...{
this.ht = new Array(4099);
this.Search = function(keyword)
...{
var arr = this.ht[keyword%4099];
if(typeof(arr) != "undefined")
...{
for(i = 0; i < arr.length; i ++)
...{
if(arr[i].key == keyword) return arr[i].code;
}
}
return null;
}
this.Insert = function(e)
...{
var arr = this.ht[e.key%4099];
if(typeof(arr) == "undefined")
...{
arr = new Array();
arr[0] = e;
this.ht[e.key%4099] = arr;
}
else
...{
arr[arr.length] = e;
}
}
}
function getXingStr()
...{
return "乙"
+ "丁,七,卜,刀,刁"
+ "干,于,土,大,万,万俟,寸,上官,山,么,千,广,弓,卫,马子车,习"
+ "丰,王,天,井,元,韦,云,专,扎,木,支,不,太叔,尤,车,区牙,比,瓦,戈,长孙,巨,日,贝,牛,毛,仁,仉,仇,化,从,丹,今,仓,公,公西,公羊,公冶,公良,公孙,乌,殳,勾,凤,卞,六,文,方,亢,火,计,尹,孔,巴,邓,双,毋,水"
+ "玉,未,正,甘,艾,古,节,左,左丘,厉,石,布,龙,平,东,东门,东郭,东方,占,卢,帅,归,申,申屠,叶,田,由冉,央,史,只,生,付,丘,白,仝,丛,令狐,印,包,乐,乐正,邝,立,玄,闪,兰宁,冯,司,司徒,司寇,司空,司马,弘,召,尼,皮,边,尕"
+ "耒,邢,戎,吉,巩,朴,权,亚,西,西门,有,百,百里,达,成,夹谷,匡,扬,毕,过,师,曲,吕,则,肉,年,朱,竹,乔,伍,伏,仲,仲孙,任,华,仰,伉伊,向,后,全,危,多,邬,庄,刘,齐,衣,充,闯,羊,羊舌,羊角,关,米,江,池汝,汤,宇文,安,军,冰,祁,许,农,寻,那,阮,阳,阴,牟,买,红,纪,孙"
+ "寿,麦,玛,远,运,赤,贡,却,芮,花,苍,严,克,劳,苏,杜,巫,巫马,李,杨,甫,邴,束,励,邳,来,扶,连轩辕,步,肖,时,吴,旷,员,别,岑,秀,利,邱,何,伯,佟,佘,余,谷,邸,狄,邹,言,享,库,应,辛,闵,怀,忻,况,冷,汪,沙,沃,沧,汲,沈,完,宋,罕,良,初,迟,张,陆,阿,陈,邵,邰,纳"
+ "青,武,幸,苗,苟,苑,范,茅,林,松,杭,郁,郏,拓拔,欧,欧阳,郅,卓,虎,尚,国,昌,畅,明,果,易,典,呼,呼延,迪,岩,罗,帕,凯,贯,牧,季,和,竺,佴,岳,侬,金,郄,周,鱼,庞,庚,底,府,於,郑,羌,单,单于,冼,法,宗,宝,宠,官,宛,空,宓,郎,房,居,屈,练,经,孟,终"
+ "封,项,赵,贲,郝,荆,茜,草,荀,荣,胡,茹,药,柯,查,相,柏,柳,郦,咸,南,南门,,南宫,战,是,贵,蚁,哈,钟,钟离,钦,钮,郜,种,秋,笃,段,段干,修,皇甫,禹,侯,律,须,俞,郗,郤,昝,逄,饶,施,恽,恰,闻,闻人,闾丘,姜,娄,首,养,洪,宣,宦,宫,冠,祖,祝,费,胥,姚,贺,勇,羿,骆,骈"
+ "秦,敖,班,载,袁,都,耿,聂,莫,莘,晋,桂,桓,格,索,栗,贾,夏,夏侯,热,原,顾,列,顿,柴,党,晁,晏,哨,钱,铁,倪,皋,徐,殷,爱,奚,翁,卿,栾,高,郭,席,唐,竞,郯,浩,凌,资,益,浦,海,涂,浣,家,宾,容,宰,宰父,诸,诸葛,谈,郎,展,陶,姬,通,能,桑"
+ "排,理,堵,教,黄,菅,萧,萨,梅,曹,戚,龚,盛,常,晨,鄂,唯,啜,崔,崇,铫,银,笪,符,第五,盘,庹,麻,瘐,康,鹿,章,商,阎,盖,淳于,淡,梁,梁丘,寇,宿,谌,扈,逮,尉,尉迟,屠,隋,隆,续,绳,巢"
+ "琴,越,喜,彭,斯,葛,董,蒋,蒉,韩,辜,森,惠,覃,粟,揭,辉,戢,景,喻,黑,嵇,程,税,傅,焦,储,舒,鲁,赓,童,羡,普,尊,曾,湛,温,滑,游,富,禄,谢,强,疏,隗,缑"
+ "鄢,靳,蓝,蒯,蓟,蓬,蒲,蒙,楚,楼,裘,赖,甄,雷,訾,虞,路,筱,简,微生,詹,鲍,解,廉,裔,靖,新,雍,阙,慎,满,溥,窦,福,褚"
+ "赫,赫连,綦,綦母,慕,慕容,蔡,蔚,蔺,臧,裴,管,鲜于,雒,廖,韵,端木,阚,漆,漆雕,赛,谭,谯,暨,翟,熊,缪"
+ "麴,燕,樊,暴,颛孙,墨,稽,黎,腾,颜,翦,潘"
+ "薛,薄,融,霍,遽,冀,穆,衡,澹台"
+ "戴,鞠,檀,糜,濮,濮阳,蹇"
+ "瞿"
+ "壤驷,酆,耀,籍"
+ "露,夔"
+ "囊,鬻";
}
</script>
<table>
<tr>
<td>
<textarea id="srcStr" cols="60" rows="20"></textarea>
</td>
<td>
<button onclick="getVal();">排序>></button>
</td>
<td>
<textarea id="descStr" cols="60" rows="20" readonly="true"></textarea>
</td>
</tr>
<tr>
<td colspan="3">
不能排序的姓名有:<font color="red"><a id="descript"></a></font>
</td>
</tr>
<tr>
<td colspan="3">
<font color="green">说 明 <br>
一、姓按字的画数多少排列。同画数内的姓字按起笔横、竖、撇、捺、折的顺序排列,画数和笔形相同的字,按字形结构,先左右形字,再上下形字,后整体字。如:同是八画的字,“明”在先,“冒”次之,“国”在后。<br>
二、姓字相同的依次看名的第二、第三字,先看画数,后看起笔顺序,再看笔形。两个字的姓名,视为第二个字为零画。<br>
三、复姓字也按第一个字笔画画数多少排列,笔画相同的按笔形顺序排列。<br>
四、姓名与姓名之间用半角逗号隔开。如:张三,李四</font>
</td>
</tr>
</table>
</body>
<script>
var ht = new HashTable();
var errorNameArr = new Array();
var nameArr = new Array();
function readDBFile()
...{
var xingStr = getXingStr();
var xingArr = xingStr.split(",");
var xingLen = xingArr.length;
for(var i=0;i<xingLen;i++)
...{
var e = new HashTableElement();
e.key = xingArr[i];
e.code = i;
ht.Insert(e);
}
}
function getVal()
...{
var xingSrc = document.all.srcStr.value;
if(xingSrc != "")
...{
var srcArr = xingSrc.split(",");
var srcLen = srcArr.length;
var errorNum = 0;
var nameNum = 0;
for(var i=0;i<srcLen;i++)
...{
var seq ;
if(srcArr[i].length >= 3 )
...{//先判断三个字的姓
seq = ht.Search(srcArr[i].substring(0,3));
if(seq == "" || seq == null)
...{
seq = ht.Search(srcArr[i].substring(0,2));
if(seq == "" || seq == null)
...{
seq = ht.Search(srcArr[i].substring(0,1));
}
}
}
else if(srcArr[i].length > 1 && srcArr[i].length <= 2 )
...{//先判断两个字的姓
seq = ht.Search(srcArr[i].substring(0,2));
if(seq == "" || seq == null)
...{
seq = ht.Search(srcArr[i].substring(0,1));
}
}
else if(srcArr[i].length == 1)
...{
seq = ht.Search(srcArr[i].substring(0,1));
}
if(seq == "" || seq == null)
...{
errorNameArr[errorNum] = srcArr[i];
errorNum++;
}
else
...{
var xingObj = new Object();
xingObj.name = srcArr[i];
xingObj.seq = seq + srcArr[i].length;
//nameArr[nameNum] = new Object();
nameArr[nameNum] = xingObj;
nameNum++;
}
}
//把排序后的姓名放到desc中
var nameNewArr = ShellSort(nameArr);
if(nameNewArr != null)
...{
var newLen = nameNewArr.length;
var descStr = ""
for(var i=0;i<newLen;i++)
...{
descStr = descStr + nameNewArr[i].name + ",";
}
document.all.descStr.value = descStr.substring(0,descStr.length-1);
}
//把不能排序的姓名列出来
if(errorNameArr != null)
...{
var newLen = errorNameArr.length;
var descStr = ""
for(var i=0;i<newLen;i++)
...{
descStr = descStr + errorNameArr[i] + ",";
}
document.all.descript.innerHTML = descStr.substring(0,descStr.length-1);
}
}
}
function ShellSort(arr) ...{ //插入排序->希儿排序
var st = new Date();
var increment = arr.length;
do ...{
increment = (increment/3|0) + 1;
arr = ShellPass(arr, increment);
}
while (increment > 1)
status = (new Date() - st) + ' ms';
return arr;
}
function ShellPass(arr, d) ...{ //希儿排序分段执行函数
var temp, j;
for(var i=d; i<arr.length; i++) ...{
if((arr[i].seq) < (arr[i-d].seq)) ...{
temp = arr[i]; j = i-d;
do ...{
arr[j+d] = arr[j];
j = j-d;
}
while (j>-1 && (temp.seq) < (arr[j].seq));
arr[j+d] = temp;
}//endif
}
return arr;
}
function HashTableElement()
...{
this.key = null;
this.code = null;
}
function HashTable()
...{
this.ht = new Array(4099);
this.Search = function(keyword)
...{
var arr = this.ht[keyword%4099];
if(typeof(arr) != "undefined")
...{
for(i = 0; i < arr.length; i ++)
...{
if(arr[i].key == keyword) return arr[i].code;
}
}
return null;
}
this.Insert = function(e)
...{
var arr = this.ht[e.key%4099];
if(typeof(arr) == "undefined")
...{
arr = new Array();
arr[0] = e;
this.ht[e.key%4099] = arr;
}
else
...{
arr[arr.length] = e;
}
}
}
function getXingStr()
...{
return "乙"
+ "丁,七,卜,刀,刁"
+ "干,于,土,大,万,万俟,寸,上官,山,么,千,广,弓,卫,马子车,习"
+ "丰,王,天,井,元,韦,云,专,扎,木,支,不,太叔,尤,车,区牙,比,瓦,戈,长孙,巨,日,贝,牛,毛,仁,仉,仇,化,从,丹,今,仓,公,公西,公羊,公冶,公良,公孙,乌,殳,勾,凤,卞,六,文,方,亢,火,计,尹,孔,巴,邓,双,毋,水"
+ "玉,未,正,甘,艾,古,节,左,左丘,厉,石,布,龙,平,东,东门,东郭,东方,占,卢,帅,归,申,申屠,叶,田,由冉,央,史,只,生,付,丘,白,仝,丛,令狐,印,包,乐,乐正,邝,立,玄,闪,兰宁,冯,司,司徒,司寇,司空,司马,弘,召,尼,皮,边,尕"
+ "耒,邢,戎,吉,巩,朴,权,亚,西,西门,有,百,百里,达,成,夹谷,匡,扬,毕,过,师,曲,吕,则,肉,年,朱,竹,乔,伍,伏,仲,仲孙,任,华,仰,伉伊,向,后,全,危,多,邬,庄,刘,齐,衣,充,闯,羊,羊舌,羊角,关,米,江,池汝,汤,宇文,安,军,冰,祁,许,农,寻,那,阮,阳,阴,牟,买,红,纪,孙"
+ "寿,麦,玛,远,运,赤,贡,却,芮,花,苍,严,克,劳,苏,杜,巫,巫马,李,杨,甫,邴,束,励,邳,来,扶,连轩辕,步,肖,时,吴,旷,员,别,岑,秀,利,邱,何,伯,佟,佘,余,谷,邸,狄,邹,言,享,库,应,辛,闵,怀,忻,况,冷,汪,沙,沃,沧,汲,沈,完,宋,罕,良,初,迟,张,陆,阿,陈,邵,邰,纳"
+ "青,武,幸,苗,苟,苑,范,茅,林,松,杭,郁,郏,拓拔,欧,欧阳,郅,卓,虎,尚,国,昌,畅,明,果,易,典,呼,呼延,迪,岩,罗,帕,凯,贯,牧,季,和,竺,佴,岳,侬,金,郄,周,鱼,庞,庚,底,府,於,郑,羌,单,单于,冼,法,宗,宝,宠,官,宛,空,宓,郎,房,居,屈,练,经,孟,终"
+ "封,项,赵,贲,郝,荆,茜,草,荀,荣,胡,茹,药,柯,查,相,柏,柳,郦,咸,南,南门,,南宫,战,是,贵,蚁,哈,钟,钟离,钦,钮,郜,种,秋,笃,段,段干,修,皇甫,禹,侯,律,须,俞,郗,郤,昝,逄,饶,施,恽,恰,闻,闻人,闾丘,姜,娄,首,养,洪,宣,宦,宫,冠,祖,祝,费,胥,姚,贺,勇,羿,骆,骈"
+ "秦,敖,班,载,袁,都,耿,聂,莫,莘,晋,桂,桓,格,索,栗,贾,夏,夏侯,热,原,顾,列,顿,柴,党,晁,晏,哨,钱,铁,倪,皋,徐,殷,爱,奚,翁,卿,栾,高,郭,席,唐,竞,郯,浩,凌,资,益,浦,海,涂,浣,家,宾,容,宰,宰父,诸,诸葛,谈,郎,展,陶,姬,通,能,桑"
+ "排,理,堵,教,黄,菅,萧,萨,梅,曹,戚,龚,盛,常,晨,鄂,唯,啜,崔,崇,铫,银,笪,符,第五,盘,庹,麻,瘐,康,鹿,章,商,阎,盖,淳于,淡,梁,梁丘,寇,宿,谌,扈,逮,尉,尉迟,屠,隋,隆,续,绳,巢"
+ "琴,越,喜,彭,斯,葛,董,蒋,蒉,韩,辜,森,惠,覃,粟,揭,辉,戢,景,喻,黑,嵇,程,税,傅,焦,储,舒,鲁,赓,童,羡,普,尊,曾,湛,温,滑,游,富,禄,谢,强,疏,隗,缑"
+ "鄢,靳,蓝,蒯,蓟,蓬,蒲,蒙,楚,楼,裘,赖,甄,雷,訾,虞,路,筱,简,微生,詹,鲍,解,廉,裔,靖,新,雍,阙,慎,满,溥,窦,福,褚"
+ "赫,赫连,綦,綦母,慕,慕容,蔡,蔚,蔺,臧,裴,管,鲜于,雒,廖,韵,端木,阚,漆,漆雕,赛,谭,谯,暨,翟,熊,缪"
+ "麴,燕,樊,暴,颛孙,墨,稽,黎,腾,颜,翦,潘"
+ "薛,薄,融,霍,遽,冀,穆,衡,澹台"
+ "戴,鞠,檀,糜,濮,濮阳,蹇"
+ "瞿"
+ "壤驷,酆,耀,籍"
+ "露,夔"
+ "囊,鬻";
}
</script>
- 一个姓名按照笔画排序的页面
- sqlserver按照笔画排序
- Mysql,姓名按笔画排序
- ORACLE按照拼音,部首,笔画排序
- ORACLE按照拼音,部首,笔画排序
- ORACLE按照拼音,部首,笔画排序
- ORACLE按照拼音,部首,笔画排序
- oracle按照拼音、部首、笔画排序
- ORACLE按照拼音,部首,笔画排序
- ORACLE按照拼音,部首,笔画排序
- ORACLE按照拼音,部首,笔画排序
- oracle 按照拼音、部首、笔画排序
- ORACLE按照拼音,部首,笔画排序
- 按照拼音、部首、笔画排序功能(oracle)
- oracle中对排序的总结(按照拼音、部首、笔画排序功能 )
- 用C语言编写一个双链表,每个结点存储学生的编号以及姓名,遍历这个双链表,并将学号按照从小到大进行排序
- 第14周 项目2-带姓名的成绩单(3)【按照姓名排序后的成绩单】
- TreeSet存储自定义对象并遍历练习2(按照姓名的长度排序)
- 在北京9年来首次见到超大型自然彩虹,爽!
- 迷茫
- windows 2000/xp/2003下安裝apache2.2.3 mysql 5.0.22 php 5.2.0
- Java虚拟机
- ASP+Access的安全隐患及对策
- 一个姓名按照笔画排序的页面
- ASP中数据库调用常见错误
- 常用ASP函数
- C/C++ 误区二:void main()
- asp中使用图片验证码的方法
- welcome
- ASP编程中20个非常有用的例子
- SOHO,怎么在迷茫中抓住新的机会
- 关于劳动