no message

master
a7458969 2020-05-09 21:20:50 +08:00
parent 1f32f51010
commit 1a1bbf0748
3 changed files with 44 additions and 3 deletions

View File

@ -65,6 +65,10 @@ message( "copy net ")
file(GLOB NET ${PROJECT_SOURCE_DIR}/src/net/*.h) file(GLOB NET ${PROJECT_SOURCE_DIR}/src/net/*.h)
file(COPY ${NET} DESTINATION ${LIBRARY_OUTPUT_PATH}/inc/ file(COPY ${NET} DESTINATION ${LIBRARY_OUTPUT_PATH}/inc/
FILE_PERMISSIONS OWNER_READ OWNER_WRITE GROUP_WRITE GROUP_READ WORLD_READ) FILE_PERMISSIONS OWNER_READ OWNER_WRITE GROUP_WRITE GROUP_READ WORLD_READ)
file(GLOB ALGORITHM ${PROJECT_SOURCE_DIR}/src/algorithm/*)
file(COPY ${ALGORITHM} DESTINATION ${LIBRARY_OUTPUT_PATH}/inc/
FILE_PERMISSIONS OWNER_READ OWNER_WRITE GROUP_WRITE GROUP_READ WORLD_READ)
IF (WIN32) IF (WIN32)
message("it is windows 32") message("it is windows 32")
ELSEIF (UNIX) ELSEIF (UNIX)

View File

@ -45,9 +45,46 @@ int selectsort(T *data,uint64_t len,CompareHanlder<T> handle){
} }
} }
template <typename T> template <typename T>
static void adjustHeap(T []arr,int i,int length) { static void adjustHeap(T []arr,int i,uint32_t len) {
} }
template <typename T>
static void maxheap_filterup(T *heapptr,uint32_t pos,uint32_t len)
{
uint32_t current = pos; // 当前节点(current)的位置
int parent = (current - 1)/2; // 父(parent)结点的位置
int tmp = heapptr[current]; // 当前节点(current)的大小
while(current > 0)
{
// 父节点大于当前节点
if(heapptr[parent] >= tmp)
break;
else
{ // 父节点小于当前节点,就调换位置,当前节点作为父节点,来源于一个抢位置的概念
heapptr[current] = heapptr[parent];
current = parent;
parent = (parent - 1)/2; // 再把当前节点和上一个父节点在比较大小
}
}
// 找到合适的索引
heapptr[current] = tmp; //最后把设置值
}
template <typename T>
int heapinert(T *heapptr,T data,uint32_t pos,uint32_t len)
{
// 如果"堆"已满,则返回
if(pos == len)
return -1;
m_heap[pos] = data; // 将"数组"插在表尾
heapfilterup(pos); // 向上调整堆
return 0;
}
template <typename T> template <typename T>
int heapsort(T *data,uint64_t len,CompareHanlder<T> handle){ int heapsort(T *data,uint64_t len,CompareHanlder<T> handle){

View File

@ -109,7 +109,7 @@ static void maxheap_filterup(int start)
if(m_heap[p] >= tmp) if(m_heap[p] >= tmp)
break; break;
else else
{ // 父节点小于当前节点,就调换位置,当前节点作为父节点 { // 父节点小于当前节点,就调换位置,当前节点作为父节点,来源于一个抢位置的概念
m_heap[c] = m_heap[p]; m_heap[c] = m_heap[p];
c = p; c = p;
p = (p-1)/2; // 再把当前节点和上一个父节点在比较大小 p = (p-1)/2; // 再把当前节点和上一个父节点在比较大小