Research Article

CUDT: A CUDA Based Decision Tree Algorithm

Algorithm 6

Algorithm of partition.
Algorithm Partition
Input:  Target array
  A flag array with 0, 1 Flag
  A Set of attribute lists
(1)Declare max = sizeof( )
(2)Declare buffer[max]
(3)Declare FalseArray[max]
(4)Declare TotalFalse
(5)Declare Address[max]
(6)For each element in Flag   do in parallel
(7)  buffer[ ] = !Flag[ ]
(8)FalseArray Scan(buffer )
(9)TotalFalse = InverFlag[max] + FalseArray[max]
(10) For each element in buffer   do in parallel
(11)   buffer[ ] =   − FalseArray[ ] + TotalFalse
(12)   Address[ ] = (Flag[ ] == 0) ? FalseArray[ ]: buffer[ ]
(13) For each element in   do in parallel
(14)   buffer[ ] =
(15)    [Address[ ]] = buffer[ ]