關於輸出給定陣列的k大小的子集

2021-06-18 20:51:30 字數 623 閱讀 3287

給定乙個長度為m的陣列(元素不重複),求出其給定大小為k的所有子集。

c語言程式如下:

演算法:採用遞迴的思想(這個是從別人那裡抄來的 (*^__^*) 嘻嘻……)

#include

#include

#define m 10

#define k 2

int count=0;//記錄總共產生了多少個子集

void get_subsets(intarrays, int *tem, intarrays_start, int tem_length)printf("\n");//輸出產生的子集

count++;

}else

if(m-arrays_start>=(k-tem_length))}}

void main();

int *tem=(int*)malloc(sizeof(int)*k);

free(tem);

get_subsets(arrays,tem,0,0);

printf("there are %d subsets\n",count);

printf("finished\n");}

程式中的m和k都是預先知道的,在main函式中的arrays陣列中存放元陣列。

有序陣列中找出給定數字的出現次數

問題 在排序陣列中,找出給定數字的出現次數,比如 1,2,2,2,3 中2的出現次數是3次。解答 使用二分查詢的方法分別找出給定數字的開始位置minindex和結束位置maxindex,最壞情況下時間複雜度為o logn 簡單 如下 二分搜尋 2.找 最大 下標i使得x i v 返回 i 或者 1 ...

在排序陣列中找出給定數字出現的次數

法一 由於給定的陣列已經是有序的,也就是說相同數字總是在一起,僅需要找出該數字最左邊的下標與最右邊的下標,兩者相減即可,又因為是已排序陣列,為了增加速度可以利用二分查詢演算法。關鍵 如下 isleft true代表找最左邊下標,false代表找最右邊下標 int binarysearch const...

在排序陣列中,找出給定數字的出現次數

題目 在排序陣列中,找出給定數字的出現次數,比如 1,2,2,2,3 中2的出現次數是3次。解法 使用二分查詢的方法分別找出給定數字的開始和結束位置,最壞情況下時間複雜度為o logn include include 全域性變數 int arr 測試陣列 int size sizeof arr si...