QSORT对位图颜色排序排成了这样,哪位大侠能帮我看看啊

lyp371 2013-05-01 01:54:54
int getCV(TColor color)
{
int r,g,b;
r=GetRValue(color);
g=GetGValue(color);
b=GetBValue(color);
return(r*0x00010000+g*0x00000100+b);
}
void qsortbmp(TBitmap *map,int left,int right)
{

if(left >= right) return;
int i = left,j = right;
int temp;
//int key = a[left];//取首元素为关键值
int key = getCV(map->Canvas->Pixels[((left + right)/2)%map->Width][int((left + right) / 2/map->Width)]);

while(i<=j)
{

while( getCV(map->Canvas->Pixels[j%map->Width][int(j/map->Width)])>key&&j>left)
j--;
while(getCV(map->Canvas->Pixels[i%map->Width][int(i/map->Width)])<key&&i<right)
i++;
if(i<=j)
{
temp = map->Canvas->Pixels[i%map->Width][int(i/map->Width)];
map->Canvas->Pixels[i%map->Width][int(i/map->Width)] = map->Canvas->Pixels[j%map->Width][int(j/map->Width)];
map->Canvas->Pixels[j%map->Width][int(j/map->Width)] = temp;
i++;
j--;
}

}
if(left<j) qsortbmp(map,left,j);
if(right>i)qsortbmp(map,i,right);
}


...全文
64 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

13,871

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧