每日一道演算法題 列印一維陣列的所有組合

2021-06-27 03:14:44 字數 985 閱讀 4067

題目:列印一維陣列的所有組合

解題思路:以陣列為例:

第一步:將看成乙個整體a,列印出只含有兩個元素的陣列,通過交換,有兩種組合和;

第二步:在陣列中,將a中的3和中的1看成乙個整體b,列印出只含有兩個元素的陣列,通過交換,有兩種組合和;

第三步:在陣列中,將b中的1和中的2看出乙個整體c,列印出只含有兩個元素的陣列,通過交換,有兩種組合和,其中,就是原始陣列。

這樣,通過交換操作和遞迴可以列印出指定個數的陣列的所有組合,**如下:

#include using namespace std;

//交換函式

void swap(int& a, int& b)

void arr_combination(int *arr, int start, int length, int nums)

cout << endl;

}else

}}int main();

int length = sizeof(array)/sizeof(int);

arr_combination(array,1,length,1);

system("pause");

return 0;

}

#include using namespace std;

//交換函式

void swap(int& a, int& b)

void arr_combination(int *arr, int start, int length)

cout << endl;

}else

}}int main();

int length = sizeof(array)/sizeof(int);

arr_combination(array,0,length-1);

system("pause");

return 0;

}

每日一道演算法題

no.1 設指標變數fron t表示鏈式佇列的隊頭指標,指標變數rear表示鏈式佇列的隊尾指標,指標變數s指向將要入佇列的結點x,則入佇列的操作序列為 a.front next s front s b.s next rear rear s crear next s rear s d.s next f...

每日一道演算法題

no.1 若有 18 個元素的有序表存放在一維陣列 a 19 中,第乙個元素放 a 1 中,現進行二分查詢,則查詢 a 3 的比較序列的下標依次為 a.1,2,3 b.9,5,2,3 c.9,5,3 d.9,4,2,3 答案 d.第一次查詢,隊首為下標1,隊尾下標18,所以是 1 18 2 9 第二...

每日一道演算法題 棧構建陣列

題目描述 給你乙個目標陣列target和乙個整數n。每次迭代,需要從list 中依序讀取乙個數字。請使用下述操作來構建目標陣列target 構建完target即可停止 並將操作記錄下來。輸入 target 1,3 n 3 輸出 push push pop push 解釋 讀取 1 並自動推入陣列 1...