Untitled
unknown
c_cpp
a year ago
1.9 kB
6
Indexable
void zigzag(int* outputArr, int *ele, int step, int *corEle, int eleNum, int type){ // 輸出陣列 輸入元素列表 第幾層遞迴 元素是否使用過 有多少元素需要排列 是>先還是<先 if(step == eleNum){ //可能要print return; } //要在哪插入回朔的點 for(int i = 0; i < eleNum; i++){ if(step == 0){ if(corEle[i] == 0){ outputArr[i] = ele[i]; corEle[i] = 1; step++; zigzag(outputArr, ele, step, corEle, eleNum, 0); corEle[i] = 0; } } else if(step == 1){ if(corEle[i] == 0){ if(ele[i] > ele[0]){ type = 1; outputArr[i] = ele[i]; corEle[i] = 1; step++; zigzag(outputArr, ele, step, corEle, eleNum, type); corEle[i] = 0; } else if(ele[i] < ele[0]){ type = 2; outputArr[i] = ele[i]; corEle[i] = 1; step++; zigzag(outputArr, ele, step, corEle, eleNum, type); corEle[i] = 0; } if(i == eleNum){ return; } } } else if(step > 1){ if(step % 2 == 0){ if(type == 1){ if(ele[i] < outputArr[i-1] ) } else if(type == 2){ } } else if(step % 2 == 1){ if(type == 1){ } else if(type == 2){ } } } } }
Editor is loading...
Leave a Comment