资源简介
自己用C写了一下黑白点匹配问题,还算比较详细吧。
注意:有两个main函数(main,main01),分别是两种思路写的。
代码片段和文件信息
#include
#include
#include
#include “myfunction.h“
void match01(point *b point *w int n)
{
int wn = n bn = n;
int i = 0 k = 0count = 0;
double tmp = 123456;
bool status = false;
int *mark;
mark = (int *)malloc(sizeof(int)*bn);
for (i = 0; i < bn; i++)
mark[i] = 0;
while (wn > 0)
{
i = n; //初始化i;
while(--i >=0 && b[i].x >= w[0].x) //可以匹配X值的点
{
if (b[i].y >= w[0].y && mark[i] == 0) //可以匹配Y值
{
status = true;
if (tmp > b[i].y) //找到最匹配的点
{
tmp = b[i].y;
k = i; //最匹配点的位置
}
}
}
//用mark标记该点已经匹配也可以直接删除。
if (status)
{
count++; //计数器
mark[k] = 1;
//直接打印匹配点。
printf(“B(%lf%lf) match W(%lf%lf)\n“ b[k].x b[k].y w[0].x w[0].y);
}
//值得初始化
tmp = 123456;
status = false;
//删除W[0]
DeleteMax_MaxHeap(w &wn);
}
//
printf(“the max match is %d“ count);
free(mark);
mark = NULL;
}
int main01()
{
point b[18] = { 13910813991071205141417911111117412581487691213610166 };
point w[18] = { 151017466969368614867962717121611117151511111078917 };
int n = 18;
//对B进行排序
quicksort_pointX(b 0 n - 1);
/*for (int i = 0; i < 11; i++)
{
printf(“%lf%lf\n“ b[i].x b[i].y);;
}*/
//对W点创建堆
Create_MAXHeap(w n);
//
match01(b w n);
getchar();
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 45056 2017-05-24 20:51 黑白点匹配问题\.vs\黑白点匹配问题\v14\.suo
文件 50688 2017-05-24 20:51 黑白点匹配问题\Debug\黑白点匹配问题.exe
文件 379672 2017-05-24 20:51 黑白点匹配问题\Debug\黑白点匹配问题.ilk
文件 700416 2017-05-24 20:51 黑白点匹配问题\Debug\黑白点匹配问题.pdb
文件 1530 2017-05-24 20:50 黑白点匹配问题\黑白点匹配问题\black_white_Match.c
文件 2348 2017-05-24 20:50 黑白点匹配问题\黑白点匹配问题\black_white_match02.c
文件 13710 2017-05-24 20:51 黑白点匹配问题\黑白点匹配问题\Debug\black_white_Match.obj
文件 17222 2017-05-20 16:28 黑白点匹配问题\黑白点匹配问题\Debug\black_white_match.obj.enc
文件 19435 2017-05-24 20:51 黑白点匹配问题\黑白点匹配问题\Debug\black_white_match02.obj
文件 20246 2017-05-24 19:11 黑白点匹配问题\黑白点匹配问题\Debug\black_white_match02.obj.enc
文件 8516 2017-05-23 13:42 黑白点匹配问题\黑白点匹配问题\Debug\Heap.obj
文件 8589 2017-05-24 19:34 黑白点匹配问题\黑白点匹配问题\Debug\MaxHeap.obj
文件 10821 2017-05-24 19:20 黑白点匹配问题\黑白点匹配问题\Debug\MinHeap.obj
文件 6131 2017-05-23 14:50 黑白点匹配问题\黑白点匹配问题\Debug\mysort.obj
文件 68608 2017-05-24 20:51 黑白点匹配问题\黑白点匹配问题\Debug\vc140.idb
文件 77824 2017-05-24 20:50 黑白点匹配问题\黑白点匹配问题\Debug\vc140.pdb
文件 371 2017-05-24 20:51 黑白点匹配问题\黑白点匹配问题\Debug\黑白点匹配问题.log
文件 4094 2017-05-24 20:51 黑白点匹配问题\黑白点匹配问题\Debug\黑白点匹配问题.tlog\CL.command.1.tlog
文件 14496 2017-05-24 20:51 黑白点匹配问题\黑白点匹配问题\Debug\黑白点匹配问题.tlog\CL.read.1.tlog
文件 6882 2017-05-24 20:51 黑白点匹配问题\黑白点匹配问题\Debug\黑白点匹配问题.tlog\CL.write.1.tlog
文件 3214 2017-05-24 20:51 黑白点匹配问题\黑白点匹配问题\Debug\黑白点匹配问题.tlog\li
文件 3750 2017-05-24 20:51 黑白点匹配问题\黑白点匹配问题\Debug\黑白点匹配问题.tlog\li
文件 1094 2017-05-24 20:51 黑白点匹配问题\黑白点匹配问题\Debug\黑白点匹配问题.tlog\li
文件 240 2017-05-24 20:51 黑白点匹配问题\黑白点匹配问题\Debug\黑白点匹配问题.tlog\黑白点匹配问题.lastbuildstate
文件 1819 2017-05-24 19:34 黑白点匹配问题\黑白点匹配问题\MaxHeap.c
文件 2798 2017-05-24 19:20 黑白点匹配问题\黑白点匹配问题\MinHeap.c
文件 1039 2017-05-23 14:50 黑白点匹配问题\黑白点匹配问题\myfunction.h
文件 868 2017-05-23 13:09 黑白点匹配问题\黑白点匹配问题\mysort.c
文件 7510 2017-05-23 13:59 黑白点匹配问题\黑白点匹配问题\黑白点匹配问题.vcxproj
文件 1446 2017-05-23 13:59 黑白点匹配问题\黑白点匹配问题\黑白点匹配问题.vcxproj.filters
............此处省略13个文件信息
- 上一篇:人像美容磨皮润肤PS插件
- 下一篇:51单片机——门禁系统
评论
共有 条评论