找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 2113|回复: 0
打印 上一主题 下一主题
收起左侧

自创排序法

[复制链接]
跳转到指定楼层
楼主
ID:72519 发表于 2015-1-20 01:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
觉得有缺点点请告诉我

C语言代码:
        char  s[30],sd[11],i,j;若为了减少变量在RAM中占的空间在char后加xdata即可,但程序代码段会增加字节
        char code a[]={17,2,6,12,23,2,3,4,21,9,5};//code是为了代码空间占用少,不加会多次2百左右字节,所以上面加了个存放数组
        for(i=0;i<sizeof(a);i++)
        {
                s[a]++;
        }
        //循环数组
        for(i=0;i<sizeof(s);i++)
        {
                //将排好的数覆盖到原数组,当有重复的下标加1,数组对应的值减1
                while(s)               
                {
                        sd[j]=i;
                        j++;
                        s--;
                }
        }
    Program Size: data=51.0 xdata=0 code=84
    代码执行总时间为393us。
    若char xdata s[30],sd[11],i,j;
    Program Size: data=9.0 xdata=43 code=169

C#代码:
             string value="";
             int[] s = new int[30];            
            int i, j = 0;
            int[] a = { 17, 2, 6, 12, 23, 2, 3, 4, 21, 9, 5 };
            for (i = 0; i < 11; i++)
            {
                s[a]++;
            }
            //循环数组
            for (i = 0; i < 30; i++)
            {
                //将排好的数覆盖到原数组,当有重复的下标加1,数组对应的值减1
                while (s > 0)
                {
                    a[j] = i;//将原数组变为排序后的内容
                    s+=i.ToString()+"  " ;
                    j++;
                    s--;
                }
            }
            MessageBox.Show(value) ;



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表