📄 globalfunctions.cpp
字号:
#include "stdafx.h"
#include "Triangulate.h"
#include "globalfunctions.h"
/*
快速排序
*/
/*
快速排序法对于大量数据的排序特别有用。其基本原理是:首先检查数据列表中的数
据数,如果小于两个,则直接退出程序。如果有超过两个以上的数据,就选择一个分
割点将数据分成两个部分,小于分割点的数据放在一组,其余的放在另一组,然后分
别对两组数据排序。
通常分割点的数据是随机选取的。这样无论你的数据是否已被排列过,你所分割成的
两个字列表的大小是差不多的。而只要两个子列表的大小差不多,该算法所需的步骤
就是N * log(N) 步。对于使用比较法进行排序的算法来讲这是最快的方法。
注意:C++中提供了一个快速排序函数qsort()
*/
/*
void quicksort(int src[],int low,int high)
{
int i,j;
int tmp;
if(low<high)
{
i=low;
j=high;
tmp=src[low]; //选第一个值
while(i<j)
{
while(i<j && src[j]>tmp)
j--;
if(i<j)
src[i++]=src[j];
while(i<j&&src[i]<=tmp)
i++;
if(i<j)
src[j--]=src[i];
}
src[i]=tmp;
quicksort(src,low,i-1);
quicksort(src,i+1,high);
}
}
*/
// 供C++快速排序函数qsort调用
int compare( const void *elem1, const void *elem2 )
{
/* Compare all of both */
XYZ e1 = *(XYZ *)elem1;
XYZ e2 = *(XYZ *)elem2;
if ( e1.x < e2.x )
return -1;
else if( e1.x == e2.x )
return 0;
else
return 1;
}
XYZ::XYZ(double x0, double y0, double z0)
{
x = x0;
y = y0;
z = z0;
}
XYZ::XYZ()
{
}
TRIANGLE::TRIANGLE()
{
p1 = -1;
p2 = -1;
p3 = -1;
t1 = NEIGHBOR_UNKNOWN;
t2 = NEIGHBOR_UNKNOWN;
t3 = NEIGHBOR_UNKNOWN;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -