實現乙個時間複雜度為θ(nlogn)的演算法,該演算法對給定n個整數的集合s和另乙個整數x,確定s中是否存在兩個其和剛好為x的元素。
採用快速排序的方法對其進行排序,然後再從排好的的序列中比較,存在相加和為x則成立。
#includeusing namespace std;
int add_equal_x(int s,int x,int n);
void quicksort(int a,int p,int r);
int partition(int a,int p,int r);
void swap(int &x,int &y);
void quicksort(int a,int p,int r)
a[p]=a[j];
a[j]=x;
return j;
}void swap(int &x,int &y)
int add_equal_x(int s,int x,int n)
return 0;
}int main()
return 0;
}
演算法 和為定值
輸入乙個陣列和乙個數字,在陣列中查詢兩個數,使得它們的和正好是輸入的那個數字。要求時間複雜度是o n 如果有多對數字的和等於輸入的數字,輸出任意一對即可。例如輸入陣列1 2 4 7 11 15和數字15。由於4 11 15,因此輸出4和11。咱們試著一步一步解決這個問題 注意闡述中數列有序無序的區別...
演算法訓練 和為T
問題描述 從乙個大小為n的整數集中選取一些元素,使得它們的和等於給定的值t。每個元素限選一次,不能乙個都不選。輸入格式 第一行乙個正整數n,表示整數集內元素的個數。第二行n個整數,用空格隔開。第三行乙個整數t,表示要達到的和。輸出格式 輸出有若干行,每行輸出一組解,即所選取的數字,按照輸入中的順序排...
演算法訓練 和為T
問題描述 從乙個大小為n的整數集中選取一些元素,使得它們的和等於給定的值t。每個元素限選一次,不能乙個都不選。輸入格式 第一行乙個正整數n,表示整數集內元素的個數。第二行n個整數,用空格隔開。第三行乙個整數t,表示要達到的和。輸出格式 輸出有若干行,每行輸出一組解,即所選取的數字,按照輸入中的順序排...