写了一个姓名按照笔画排序的页面, 共享一下。

< 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 >

一个姓名按照笔画排序的页面相关推荐

  1. 【zz】如何在word中自动给姓名按姓氏笔画排序

    工作中,我们常常遇见一个难题,在给领导发邮件或者是录用相关名单时,由于不知道每个人的级别,无法按照级别来进行排名,随意安放名字又会显得很不尊重.这时候我们需要按姓氏笔画或者按姓氏手写字幕排序,这里给你 ...

  2. java 按照笔画排序_oracle 按照拼音、部首、笔画排序

    下面的方法需要ORACLE9i和以上的版本才支持. Oracle9i之前,中文是按照二进制编码进行排序的. 在oracle9i中新增了按照拼音.部首.笔画排序功能.设置NLS_SORT值 SCHINE ...

  3. oracle中对排序的总结(按照拼音、部首、笔画排序功能 )

    -- 按拼音排序 (系统默认) select * from perexl order by nlssort(tangle,'NLS_SORT=SCHINESE_PINYIN_M'); -- 按部首排序 ...

  4. 巧用Excel笔画排序,实现计算汉字笔画数

    点赞再看,养成习惯:皮之不存,毛将焉附. 微信搜索[亦心Excel]关注这个不一样的自媒体人. 本文 GitHub https://github.com/hugogoos/Excel 已收录,包含Ex ...

  5. php jsp显示数据排序,JSP_SQL数据库开发中的一些精典代码,1.按姓氏笔画排序: select * From T - phpStudy...

    SQL数据库开发中的一些精典代码 1.按姓氏笔画排序: select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke ...

  6. 【我的Android进阶之旅】Android实现中文汉字笔划(笔画)排序、中文拼音排序、英文排序的国家地区选择界面

    一.需求描述 最近要做一个类似微信的,在登录界面选择国家地区的功能,微信有中文汉字笔画排序以及中文拼音排序等几种方式,如下所示: 微信:简体中文.拼音排序 微信:繁体中文.笔画排序 微信 英文 字母排 ...

  7. ORACLE按照拼音,部首,笔画排序

    下面的方法需要ORACLE9i和以上的版本才支持. Oracle9i之前,中文是按照二进制编码进行排序的. 在oracle9i中新增了按照拼音.部首.笔画排序功能.设置NLS_SORT值 SCHINE ...

  8. vue生成一个姓名的头像图片Base64格式

    关注微信公众号:每日玩机 获取ios.Android.tv.mac黑科技软件 本方法是写成了全局方法,用this.$userHead(name)调用,如需单独在一个页面中使用,也可以在页面中单独写成一 ...

  9. C语言入门:利用冒泡排序算法实现将学生姓名按字典序排序

    C语言:利用冒泡排序算法实现将学生姓名按字典序排序 1.字符数组的定义与初始化 定义字符数组的一般格式为:char  数组名[常量表达式]: 字符数组的初始化有三种不同的方式:(1)用单个字符常量对字 ...

最新文章

  1. it行业php,什么是IT行业
  2. 可伸缩搜索框 旋转实现loading
  3. python通过什么来体现逻辑关系_Python语言通过()来体现语句之间的逻辑关系。
  4. 求最大素数和最小素数
  5. 李飞飞:在物体识别之后,计算机视觉还要多久才能理解这个世界?
  6. Android 系统(200)---Android build.prop参数详解
  7. Spring事务管理2----编程式事务管理
  8. AMESim中Demo简介
  9. c语言c11标准 下载,【整理】C语言的各种版本:C89,AMD1,C99,C11
  10. 数学管理联考-无限循环小数如何转化为分数
  11. Repo:Deep Learning with Differential Privacy
  12. 做为一个玩家如何架设传奇
  13. 关于程序员工作 交接的一些注意事项
  14. Element UI 图片上传功能踩坑
  15. 单反、微单、卡片相机的区别
  16. TP4056 1A锂电池充电板模块使用方法Type-C USB接口
  17. 01背包问题关于空间优化的讨论
  18. jsp327的个人目标计划时间管理系统(idea运行)ssm+mysql
  19. DolphinScheduler 调用flink以及api的 使用
  20. 太大的ppt文件怎么压缩变小

热门文章

  1. 软工实践2019第四次作业-结对第一次作业
  2. Android制作一个视频录制器
  3. Android如何接入渠道SDK的闪屏页?一个activity就够了
  4. 苹果手机能低价买?46人被骗1.5亿元
  5. 《Java Web从入门到精通》PDF 百度网盘
  6. R语言dplyr包summarise_at函数计算dataframe数据中多个数据列(通过向量指定)的均值和中位数、指定na.rm参数配置删除缺失值
  7. 2020年Java阶段面试题(初)
  8. 台积电击败三星 赢得高通骁龙7nm处理器订单
  9. 循环神经网络(三)(常用循环神经网络,LSTM、GRU,文本生成)
  10. Aspose.Imaging for java 22.9最新版