找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2081|回复: 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) ;



回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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