c语言 优化 移位 算法-如何使字符串半字节移位更加高效?

问题描述

如何使字符串半字节移位更加高效?

近段时间公司项目中一段代码用gprof分析出来很暂用时间,考虑优化,
问题类似:char buf[1024] = {0x12, 0x34, 0x56, 0x78} 将该字符串左移动半个字节,得到0x23 0x45 0x67 0x80,可以0补上。

假如待移动的字节数为N,除了循环N次,依次遍历每个字节外,有更高效的少于O(N)的时间复杂度吗?(寄存器优化已试过,优化效果不明显。)

解决方案

没人关注吗?
小伙伴们太忙了。。。
顶一下。。。
在stackOverFlow上同时也开了一个类似问题,立马就有人回应(可搜索:make the moving bits more efficient)(虽然暂时还没解决。^_^)。

时间: 2025-01-17 23:47:20

c语言 优化 移位 算法-如何使字符串半字节移位更加高效?的相关文章

谷歌过度优化惩罚算法正式推出 外贸行业冬天即将来临?

这几天对于互联网的人来说是"暴风雨来袭",百度对算法系统进行升级,就在这几天,也就是在4月24日,谷歌正式推出了对过度优化网站的惩罚.突然想到,对于做外贸行业的朋友来说面临着冬天即将来临呢?   背景一:3月初Google的工程师Matt将惩罚过度使用搜索引擎优化的网站 在3月初的时候,Google的工程师Matt Cutts在一次讨论小组中透露将惩罚过度使用搜索引擎优化技术的网站.Google认为搜索引擎应该拥有一个"公平的竞争环境", 内容涉及"语义搜

c语言-[C语言]求一个算法,输入N个数,输出所有其中任意M个数相加等于定值S的结果

问题描述 [C语言]求一个算法,输入N个数,输出所有其中任意M个数相加等于定值S的结果 如题,比如输入1,,2,10,5,7,8,9,11,输出其中任意几个数相加等于12的结果(不重复), 不自身相加. 1+2+9=12 10+2=12 7+5=12 解决方案 这题如果不考虑优化问题--轮询吧--总共有2的n次方种组合-学过排列组合的都知道

一步一步写算法(之字符串查找 中篇)

原文:一步一步写算法(之字符串查找 中篇) [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com]     昨天我们编写了简单的字符查找函数.虽然比较简单,但是也算能用.然而,经过我们仔细分析研究一下,这么一个简单的函数还是有改进的空间的.在什么地方改进呢?大家可以慢慢往下看.     下面的代码是优化前的代码,现在再贴一次,这样分析起来也方便些: char* strstr(const char* str, char* data) { int i

C语言实现排序算法之归并排序详解_C 语言

排序算法中的归并排序(Merge Sort)是利用"归并"技术来进行排序.归并是指将若干个已排序的子文件合并成一个有序的文件. 一.实现原理: 1.算法基本思路 设两个有序的子文件(相当于输入堆)放在同一向量中相邻的位置上:R[low..m],R[m+1..high],先将它们合并到一个局部的暂存向量R1(相当于输出堆)中,待合并完成后将R1复制回R[low..high]中. (1)合并过程 合并过程中,设置i,j和p三个指针,其初值分别指向这三个记录区的起始位置.合并时依次比较R[i

顺序表应用1:多余元素删除之移位算法

顺序表应用1:多余元素删除之移位算法 Time Limit: 1000MS Memory Limit: 650KB Problem Description 一个长度不超过10000数据的顺序表,可能存在着一些值相同的"多余"数据元素(类型为整型),编写一个程序将"多余"的数据元素从顺序表中删除,使该表由一个"非纯表"(值相同的元素在表中可能有多个)变成一个"纯表"(值相同的元素在表中只保留第一个). 要求:        1.

一步一步写算法(之字符串查找 下篇)

原文:一步一步写算法(之字符串查找 下篇) [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com]     前面我们谈到了KMP算法,但是讲的还不是很详细.今天我们可以把这个问题讲的稍微详细一点.假设在字符串A中寻找字符串B,其中字符串B的长度为n,字符串A的长度远大于n,在此我们先忽略.     假设现在开始在字符串A中查找,并且假设双方在第p个字符的时候发现查找出错了,也就是下面的情况: /* * A: A1 A2 A3 A4 ... Ap

C语言 实现归并排序算法_C 语言

C语言 实现归并排序算法 归并排序(Merge sort)是创建在归并操作上的一种有效的排序算法.该算法是采用分治法(Divide and Conquer)的一个非常典型的应用. 一个归并排序的例子:对一个随机点的链表进行排序 算法描述 归并操作的过程如下: 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列 设定两个指针,最初位置分别为两个已经排序序列的起始位置 比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置 重复步骤3直到某一指针到达序列尾

网站优化如何做才能使网站步入正轨

网站优化是一个很漫长的道路.一个优秀的网站优化者要想使一个网站步入正轨,那么他在网站的优化过程中会面对许多的困难和麻烦.从一开始的网站的框架设计,内容,友链的思考,到最后网站的整体优化,这些都是一个网站优化者必须要面对和经历的过程,当然网站优化也不可能使一帆风顺的,在优化网站的过程中也会有突入其来的麻烦,那么我们这些做网站优化的该如何去做才能使我们的网站优化步入正轨呢? 事实上,每个做网站优化的seoer们,都希望自己的网站很快的步入正轨,网站可以平稳安全的运行者,然后自己可以轻松的作为一个站长

想要深入学习编程,求推荐语言-目的是算法实现和数据分析

问题描述 想要深入学习编程,求推荐语言-目的是算法实现和数据分析 目前懂得Python, Vb.Net, R的基本知识,并稍微懂得一些C# 实验室大概要向数据处理方面靠一靠,主要涉及的是地理数据库(关系数据库) 最基本需要是实现功能,例如spatial data clusering啊,定制的决策树啊一类的,也有可能涉及到批处理和其他的底层地理数据库处理. 以后可能有一定图形界面的需求. 我应该主要深入学习哪一门语言比较合适我的需求? 或者有什么其他的语言推荐吗 解决方案 推荐python,现在p