24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1101  |  回复: 13

cw277

木虫 (正式写手)

[求助] 求程序优化

(主要是怎么实现函数快速地插入操作)
int * insert(int s[], int t3,int t1,int t2)
{
        int *b,i;
    b = (int *) malloc (sizeof(int)*288);
        for(i=0;i<93;i++)
                b [ i ]= s [ i ];
                s[0]=t3;
        for(i=1;i<93;i++)
                s [ i ]=b[i-1];

        for(i=93;i<177;i++)
               b [ i ]= s [ i ];
                s[93]=t1;
        for(i=94;i<177;i++)
                s [ i ]=b[i-1];

        for(i=177;i<288;i++)
                b [ i ]= s [ i ];
                s[177]=t2;
        for(i=178;i<288;i++)
                s [ i ]=b[i-1];
    free(b);
        b=NULL;
        return s;
}
回复此楼

» 猜你喜欢

感谢生活让我慢慢学会控制自己的情绪,学会包容与忍耐,学会不再去期待
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
回帖置顶 ( 共有1个 )

cw277

木虫 (正式写手)

cw277: 回帖置顶 2012-03-26 15:08:48
自己写了一个,经测试时间的确短了。

int * insert2(int s[], int t3,int t1,int t2)
{
       
int *pBuffer = (s + 177);
memmove(pBuffer+1,pBuffer,(288-178)*sizeof(int));
(*pBuffer)=t2;
pBuffer = s+93;
memmove(pBuffer+1,pBuffer,(177-94)*sizeof(int));
(*pBuffer)=t1;
pBuffer = s;
memmove(pBuffer+1,pBuffer,92*sizeof(int));
*pBuffer=t3;
return s;
}
感谢生活让我慢慢学会控制自己的情绪,学会包容与忍耐,学会不再去期待
14楼2012-03-26 15:08:03
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

nebulaly

木虫 (著名写手)


jjdg: 金币+1, 感谢参与 2012-03-24 01:52:39
看来看去,无非就是个循环语句
能有多慢?
几个微秒貌似不需要优化吧

要是觉得程序太长
memcpy就是了
7楼2012-03-23 23:08:50
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

nebulaly

木虫 (著名写手)


jjdg: 金币+1, 感谢应助 2012-03-24 01:52:51
说句题外话

return s

这种写法

就是产生一切问题的根源
8楼2012-03-23 23:12:11
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

lurencyj

木虫 (著名写手)

【答案】应助回帖


感谢参与,应助指数 +1
cw277: 金币+1, 我主要是想在这些位置插入t1.t2.t3,现在不知道怎么实现效率高一点? 2012-03-21 20:28:32
楼主的程序里面好多magic number啊,比如288,93,94, 177,178。
能说明一下么?
很女子很弓虽大
2楼2012-03-21 17:49:01
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

lurencyj

木虫 (著名写手)

【答案】应助回帖

★ ★
cw277: 金币+1, 我想写一个函数,输入形参是数组,但是插入操作过程是链表.. 请问这样可行么? 2012-03-21 22:26:52
余泽成: 金币+1, 谢谢参与应助! 2012-03-23 16:49:55
对于连续存储的数组,你的程序里面是O(N)了,应该是不能再优化了。

要是你经常做插入或者删除操作的话,可以考虑使用连表。
很女子很弓虽大
3楼2012-03-21 21:57:11
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

cw277

木虫 (正式写手)

引用回帖:
3楼: Originally posted by lurencyj at 2012-03-21 21:57:11:
对于连续存储的数组,你的程序里面是O(N)了,应该是不能再优化了。

要是你经常做插入或者删除操作的话,可以考虑使用连表。

而且返回的是一个数组。
感谢生活让我慢慢学会控制自己的情绪,学会包容与忍耐,学会不再去期待
4楼2012-03-21 22:27:36
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

cw277

木虫 (正式写手)

引用回帖:
3楼: Originally posted by lurencyj at 2012-03-21 21:57:11:
对于连续存储的数组,你的程序里面是O(N)了,应该是不能再优化了。

要是你经常做插入或者删除操作的话,可以考虑使用连表。

而且返回的是一个数组
感谢生活让我慢慢学会控制自己的情绪,学会包容与忍耐,学会不再去期待
5楼2012-03-21 22:28:14
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

lurencyj

木虫 (著名写手)

【答案】应助回帖

★ ★
jjdg: 金币+1, 感谢参与 2012-03-22 00:35:31
余泽成: 金币+1, 鼓励讨论! 2012-03-23 16:50:07
不太可行,从时间消耗上面来讲。

数组和链表区别在于数据结构。其实对电脑来说,稍微几次288个元素数组搬迁,耗时上面没有多大区别。
很女子很弓虽大
6楼2012-03-21 22:46:06
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

cw277

木虫 (正式写手)

引用回帖:
7楼: Originally posted by nebulaly at 2012-03-23 23:08:50:
看来看去,无非就是个循环语句
能有多慢?
几个微秒貌似不需要优化吧

要是觉得程序太长
memcpy就是了

我跑得是多次循环,这个函数要调用几千万次。   这个要是优化后十分可观!
感谢生活让我慢慢学会控制自己的情绪,学会包容与忍耐,学会不再去期待
9楼2012-03-24 09:58:35
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

cw277

木虫 (正式写手)

引用回帖:
8楼: Originally posted by nebulaly at 2012-03-23 23:12:11:
说句题外话

return s

这种写法

就是产生一切问题的根源

为什么这么说,能说一下原因么? 谢谢
感谢生活让我慢慢学会控制自己的情绪,学会包容与忍耐,学会不再去期待
10楼2012-03-24 09:59:10
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 cw277 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿华中农业071010,总分320求调剂 +6 困困困困坤坤 2026-04-02 6/300 2026-04-02 21:28 by dongzh2009
[考研] 315求调剂 +10 小羊小羊_ 2026-04-02 10/500 2026-04-02 21:20 by 1104338198
[考研] 土木304求调剂 +4 兔突突突, 2026-04-02 5/250 2026-04-02 21:16 by 兔突突突,
[考研] 22408 266求调剂 +3 masss11222 2026-04-02 3/150 2026-04-02 18:11 by 笔落锦州
[考研] 总分328生物与医药考数学求调剂 +3 aaadim 2026-04-02 3/150 2026-04-02 14:04 by 乔哒哒哒
[考研] 261求B区调剂 +5 明仔· 2026-04-01 7/350 2026-04-02 11:17 by 邹尉尉
[考研] 324求调剂 +5 想上学求调 2026-04-01 6/300 2026-04-02 10:16 by sanrepian
[考研] 322求调剂 +5 熹僖XX 2026-03-31 6/300 2026-04-02 10:08 by 求调剂zz
[考研] 英一数一408,总分284,二战真诚求调剂 +12 12.27 2026-03-30 14/700 2026-04-02 00:18 by 欣喜777
[考研] 江苏科技大学招材料研究生 +4 Su032713. 2026-04-01 5/250 2026-04-01 22:03 by cccchenso
[考研] 建环,能源,土木老师路过看一看!!! +4 嘿嘿uu 2026-04-01 4/200 2026-04-01 20:42 by 无懈可击111
[考研] 一志愿西安交大材料学硕(英一数二)347,求调剂到高分子/材料相关专业 +7 zju51 2026-03-31 9/450 2026-04-01 19:35 by CFQZAFU
[考研] 332求调剂 +8 Lyy930824@ 2026-03-29 8/400 2026-04-01 18:40 by 千钧澄玉宇啊
[考研] 求调剂 +4 DADA怪 2026-03-31 4/200 2026-04-01 14:30 by ZXlzxl0425
[考研] 326求调剂 +4 崽崽仔 2026-03-31 4/200 2026-04-01 09:58 by 我的船我的海
[考研] 343求调剂 +8 爱羁绊 2026-03-28 8/400 2026-03-31 16:12 by 不吃魚的貓
[考研] 085601 329分调剂 +6 yzsa12 2026-03-31 6/300 2026-03-31 15:23 by yanflower7133
[考研] 277跪求调剂 +8 1915668 2026-03-27 13/650 2026-03-31 14:58 by 王亮_大连医科大
[考研] 085404 22408 315分 +5 zhuangyan123 2026-03-31 6/300 2026-03-31 13:48 by limeifeng
[考研] 086000生物与医药调剂 +5 Feisty。 2026-03-28 9/450 2026-03-29 12:02 by longlotian
信息提示
请填处理意见