-
1.Describe a Θ(n lg n)-time algorithm that, given a set S of n integers and
another integer x, determines whether or not there exist two elements in S whose sum is exactly x. (Implement exercise 2.3-7.)
#include<stdio.h>
#include<stdlib.h>
void merge(int arr[],int low,int mid,int high){
int i,k;
int *tmp=(int*)malloc((high-low+1)*sizeof(int));
int left_low=low;
int left_high=mid;
int right_low=mid+1;
int right_high=high;
for(k=0;left_low<=left_high&&right_low<=right_high;k++)
{
if(arr[left_low]<=arr[right_low]){
tmp[k]=arr[left_low++];
}
else{
tmp[k]=arr[right_low++];
}
}
if(left_low<=left_high){
for(i=left_low;i<=left_high;i++){
tmp[k++]=arr[i];
}
}
if(right_low<=right_high){
for(i=right_low;i<=right_high;i++)
tmp[k++]=arr[i];
}
for(i=0;i<high-low+1;i++)
arr[low+i]=tmp[i];
}
void merge_sort(int a[],int p,int r){
int q;
if(p<r){
q=(p+r)/2;
merge_sort(a,p,q);
merge_sort(a,q+1,r);
merge(a,p,q,r);
}
}
int main(){
int a[8]={3,5,8,6,4,1,1};
int i,j;
int x=10;
merge_sort(a,0,6);
printf("after Merging-Sort:\n");
for(i=0;i<7;i++){
printf("%d",a[i]);
}
printf("\n");
i=0;j=6;
do{
if(a[i]+a[j]==x){
printf("exist");
break;
}
if(a[i]+a[j]>x)
j--;
if(a[i]+a[j]<x)
i++;
}while(i<=j);
if(i>j)
printf("not exist");
system("pause");
return 0;
}
標簽:
c語言
算法
排序
上傳時間:
2017-04-01
上傳用戶:糖兒水嘻嘻
-
1. 編寫M程序,利用圖像點運算的線性函數:G = aF + b, 給出a、b的不同值,改變圖像的對比度、亮度以及圖像反相的效果。
2. 利用“二值圖像與原圖像做點乘,得到子圖像”的原理.,編寫M程序,構造特殊的二值圖像,最終得到需要的子圖像。
3. 編寫M程序,實現兩個大小不同圖像的疊加。
4,(提高題)編寫M程序,實現圖像的動態平移。
標簽:
數字圖像
處理技術
圖像
運算
上傳時間:
2017-05-10
上傳用戶:mouroutao
-
#include<stdio.h>
#include<windows.h>
int xuanxiang;
int studentcount;
int banjihao[100];
int xueqihao[100][10];
char xm[100][100];
int xuehao[100][10];
int score[100][3];
int yuwen;
int shuxue[000];
int yingyu[100];
int c[100];
int p;
char x[1000][100]="",y[100][100]="";/*x學院 y專業 z班級*/
int z[100];
main()
{
void input();
void inputsc();
void alter();
void scbybannji();
printf("--------學生成績管理-----\n");
printf("請按相應數字鍵來實現相應功能\n");
printf("1.錄入學生信息 2.錄入學生成績 3.修改學生成績\n");
printf("4.查詢學生成績 5.不及格科目及名單 6.按班級輸出學生成績單\n");
printf("請輸入你要實現的功能所對應的數字:");
scanf("%d",&xuanxiang);
system("cls");
getchar();
switch (xuanxiang)
{
case 1:input();
case 2:inputsc();
case 3:alter();
/*case 4:select score();
case 5:bujigekemujimingdan();*/
case 6:scbybanji;
}
}
void input()
{
int i;
printf("請輸入你的學院名稱:");
gets(x);
printf("請輸入你的專業名稱:");
gets(y);
printf("請輸入你的班級號:");
scanf("%d",&z);
printf("請輸入你們一個班有幾個人:");
scanf("%d",&p);
system("cls");
for(i=0;i<p;i++)
{
printf("請輸入第%d個學生的學號:",i+1);
scanf("%d",xuehao[i]);
getchar();
printf("請輸入第%d個學生的姓名:",i+1);
gets(xm[i]);
system("cls");
}
printf("您已經錄入完畢您的班級所有學生的信息!\n");
printf("您的班級為%s%s%s\n",x,y,z);
/*alter(p);*/
}
void inputsc()
{
int i;
for(i=0;i<p;i++)
{
printf("\n");
printf("--------------------------------------------------------------------------------\n\n");
printf("\t\t\t\t錄入學生的成績\n\n\n");
printf("--------------------------------------------------------------------------------\n\n");
printf("\t\t\t\t%s\n",xm[i]);
printf("\n");
printf("\t\t\t\t數學:");
scanf("%d",&shuxue[i]);
printf("\n");
getchar();
printf("\t\t\t\t英語:");
scanf("%d",&yingyu[i]);
printf("\n");
getchar();
printf("\t\t\t\tc語言:");
scanf("%d",&c[i]);
system("cls");
}
}
void alter()
{
int i;/*循環變量*/
int m[10000];/*要查詢的學號*/
int b;/*修改后的成績*/
char kemu[20]="";
printf("請輸入你要修改的學生的學號");
scanf("%d",&m);
for (i=0;i<p;i++)
{
if (m==xuehao[i])
{
printf("%s的數學成績為%d,英語成績為%d,c語言成績為%d,xm[i],shuxue[i],yingyu[i],c[i]");
printf("請輸入你想修改的科目");}
}
gets(kemu);
getchar();
if (kemu=="數學");
{
scanf("%d",&b);
shuxue[i]=b;}
if (kemu=="英語");
{
scanf("%d",&b);
yingyu[i]=b;}
if (kemu=="c語言");
{
scanf("%d",&b);
c[i]=b;
}
printf("%s的數學成績為%d,英語成績為%d,c語言成績為%d,xm[i],shuxue[i],yingyu[i],c[i]");
}
void scbybannji()
{
int i;
char zyname[20];
int bjnumber;
printf("請輸入你的專業名稱");
scanf("%s",&zyname);
printf("請輸入你的班級號");
scanf("%d",&bjnumber);
for (i=0;i<p;i++)
{
if (zyname==y[i]);
if (bjnumber==z[i]);
printf("專業名稱%s班級號%d數學成績%d英語成績%dc語言成績%d,y[i],z[i],shuxue[i],yingyu[i],c[i]");
}
}
標簽:
c語言
上傳時間:
2018-06-08
上傳用戶:2369043090
-
function [alpha,N,U]=youxianchafen2(r1,r2,up,under,num,deta)
%[alpha,N,U]=youxianchafen2(a,r1,r2,up,under,num,deta)
%該函數用有限差分法求解有兩種介質的正方形區域的二維拉普拉斯方程的數值解
%函數返回迭代因子、迭代次數以及迭代完成后所求區域內網格節點處的值
%a為正方形求解區域的邊長
%r1,r2分別表示兩種介質的電導率
%up,under分別為上下邊界值
%num表示將區域每邊的網格剖分個數
%deta為迭代過程中所允許的相對誤差限
n=num+1; %每邊節點數
U(n,n)=0; %節點處數值矩陣
N=0; %迭代次數初值
alpha=2/(1+sin(pi/num));%超松弛迭代因子
k=r1/r2; %兩介質電導率之比
U(1,1:n)=up; %求解區域上邊界第一類邊界條件
U(n,1:n)=under; %求解區域下邊界第一類邊界條件
U(2:num,1)=0;U(2:num,n)=0;
for i=2:num
U(i,2:num)=up-(up-under)/num*(i-1);%采用線性賦值對上下邊界之間的節點賦迭代初值
end
G=1;
while G>0 %迭代條件:不滿足相對誤差限要求的節點數目G不為零
Un=U; %完成第n次迭代后所有節點處的值
G=0; %每完成一次迭代將不滿足相對誤差限要求的節點數目歸零
for j=1:n
for i=2:num
U1=U(i,j); %第n次迭代時網格節點處的值
if j==1 %第n+1次迭代左邊界第二類邊界條件
U(i,j)=1/4*(2*U(i,j+1)+U(i-1,j)+U(i+1,j));
end
if (j>1)&&(j U2=1/4*(U(i,j+1)+ U(i-1,j)+ U(i,j-1)+ U(i+1,j));
U(i,j)=U1+alpha*(U2-U1); %引入超松弛迭代因子后的網格節點處的值
end
if i==n+1-j %第n+1次迭代兩介質分界面(與網格對角線重合)第二類邊界條件
U(i,j)=1/4*(2/(1+k)*(U(i,j+1)+U(i+1,j))+2*k/(1+k)*(U(i-1,j)+U(i,j-1)));
end
if j==n %第n+1次迭代右邊界第二類邊界條件
U(i,n)=1/4*(2*U(i,j-1)+U(i-1,j)+U(i+1,j));
end
end
end
N=N+1 %顯示迭代次數
Un1=U; %完成第n+1次迭代后所有節點處的值
err=abs((Un1-Un)./Un1);%第n+1次迭代與第n次迭代所有節點值的相對誤差
err(1,1:n)=0; %上邊界節點相對誤差置零
err(n,1:n)=0; %下邊界節點相對誤差置零
G=sum(sum(err>deta))%顯示每次迭代后不滿足相對誤差限要求的節點數目G
end
標簽:
有限差分
上傳時間:
2018-07-13
上傳用戶:Kemin
-
在包 hugeinteger 中創建功能類 HugeInteger,該類用來存放和操作一個不超過
40 位的大整數。
(1) 定義一個構造函數,用來對大整數進行初始化。參數為一個字符串。
(2) 定義 input 成員函數,實現大整數的重新賦值。參數為一個字符串,無返回
值。
(3) 定義 output 成員函數,將大整數輸出到屏幕上。無參數無返回值。
(4) 定義 add 成員函數,實現兩個大整數的加法。參數為一個 HugeInteger 對
象,無返回值,例如:
HugeInteger A = new HugeInteger("12345");
HugeInteger B = new HugeInteger("1234");
A.add(B);
此時,A 為 13579,B 為 1234。
(5) 定義 sub 成員函數,實現兩個大整數的減法。參數和返回值同 add 函數。
(6) 定義若干大整數關系運算的成員函數,包括 isEqualTo(等于,=)、
isNotEqualTo(不等于,≠)、isGreaterThan(大于,>)、isLessThan(小
于,<)、isGreaterThanOrEqualTo(大于等于,≥)和 isLessThanOrEqualTo
(小于等于,≤)。這些函數的參數為一個 HugeInteger 對象,返回值為一個
布爾類型,表示關系運算的結果,例如:
HugeInteger A = new HugeInteger("12345");
HugeInteger B = new HugeInteger("1234");
那么此時 A.isGreaterThan(B)的結果應當為 True,表示 12345>1234。
標簽:
java
整數
運算
上傳時間:
2019-06-01
上傳用戶:idealist
-
反激式開關電源變壓器設計的詳細步驟85W反激變壓器設計的詳細步驟 1. 確定電源規格. 1).輸入電壓范圍Vin=90—265Vac; 2).輸出電壓/負載電流:Vout1=42V/2A, Pout=84W 3).轉換的效率=0.80 Pin=84/0.8=105W 2. 工作頻率,匝比, 最低輸入電壓和最大占空比確定. Vmos*0.8>Vinmax+n(Vo+Vf)600*0.8>373+n(42+1)得n<2.5Vd*0.8>Vinmax/n+Vo400*0.8>373/n+42得n>1.34 所以n取1.6最低輸入電壓Vinmin=√[(Vacmin√2)* (Vacmin√2)-2Pin(T/2-tc)/Cin=(90√2*90√2-2*105*(20/2-3)/0.00015=80V取:工作頻率fosc=60KHz, 最大占空比Dmax=n(Vo+Vf)/[n(Vo+Vf)+Vinmin]= 1.6(42+1)/[1.6(42+1)+80]=0.45 Ton(max)=1/f*Dmax=0.45/60000=7.5us 3. 變壓器初級峰值電流的計算. Iin-avg=1/3Pin/Vinmin=1/3*105/80=0.4AΔIp1=2Iin-avg/D=2*0.4/0.45=1.78AIpk1=Pout/?/Vinmin*D+ΔIp1=84/0.8/80/0.45=2.79A 4. 變壓器初級電感量的計算. 由式子Vdc=Lp*dip/dt,得: Lp= Vinmin*Ton(max)/ΔIp1 =80*0.0000075/1.78 =337uH 取Lp=337 uH 5.變壓器鐵芯的選擇. 根據式子Aw*Ae=Pt*1000000/[2*ko*kc*fosc*Bm*j*?],其中: Pt(標稱輸出功率)= Pout=84W Ko(窗口的銅填充系數)=0.4 Kc(磁芯填充系數)=1(對于鐵氧體), 變壓器磁通密度Bm=1500Gs j(電流密度): j=4A/mm2;Aw*Ae=84*1000000/[2*0.4*1*60*103*1500Gs*4*0.80]=0.7cm4 考慮到繞線空間,選擇窗口面積大的磁芯,查表: ER40/45鐵氧體磁芯的有效截面積Ae=1.51cm2 ER40/45的功率容量乘積為 Ap = 3.7cm4 >0.7cm4 故選擇ER40/45鐵氧體磁芯. 6.變壓器初級匝數 1).由Np=Vinmin*Ton/[Ae*Bm],得: Np=80*7.5*10n-6/[1.52*10n-4*0.15] =26.31 取 Np =27T 7. 變壓器次級匝數的計算. Ns1(42v)=Np/n=27/1.6=16.875 取Ns1 = 17T Ns2(15v)=(15+1)* Ns1/(42+1)=6.3T 取Ns2 = 7T
標簽:
開關電源
變壓器
上傳時間:
2022-04-15
上傳用戶:
-
小車資料 - 0樹莓派教程2016-0804 - 0樹莓派入門套件A光盤.rar - 2.87GB(網盤)B套餐資料.rar - 507.56MBC盤.rar - 1.31GBB套餐資料.rar - 1.87GBB盤.rar - 2.35GBA盤.rar - 2.07GB40118樹莓派實戰指南(教學視頻與源代碼).rar - 3.01GB微雪5寸顯示器config - 0樹莓派詳細資料 - 0視頻教程 - 0RaspberryPi配件安裝視頻.mp4 - 13.49MB6、樹莓派小車系列之按鍵控制小車.mp4 - 197.46MB
標簽:
樹莓派
智能小車
上傳時間:
2022-06-05
上傳用戶:
-
|- 我的虛擬機和ubuntu下載 - 0 B|- 騰訊課堂公開課 - 0 B|- 工具軟件 - 0 B|- X210光盤資料 - 0 B|- 4.C語言專題精講篇 - 0 B|- 2.uboot和linux內核移植 - 0 B|- 1.ARM裸機全集 - 0 B|- 0.基礎預科 - 0 B|- 專用播放器第一代-已不用,請下載第二代.rar - 18.10 MB|- 專用播放器-《朱老師物聯網大講堂》收費視頻.rar - 18.10 MB|- 朱老師物聯網大講堂高級課程專用播放器-第二代.rar - 28.10 MB
標簽:
物聯網
上傳時間:
2022-06-06
上傳用戶:
-
|- 數據科學速查表 - 0 B|- 遷移學習實戰 - 0 B|- 零起點Python機器學習快速入門 - 0 B|- 《深度學習入門:基于Python的理論與實現》高清中文版PDF+源代碼 - 0 B|- 《Python生物信息學數據管理》中文版PDF+英文版PDF+源代碼 - 0 B|- 《Python深度學習》2018中文版pdf+英文版pdf+源代碼 - 0 B|- 《Python編程:從入門到實踐》中文版+源代碼 - 0 B|- stanford machine learning - 0 B|- Python語言程序設計2018版電子教案 - 0 B|- Python網絡編程第三版 (原版+中文版+源代碼) - 0 B|- Python機器學習實踐指南(中文版帶書簽)、原書代碼、數據集 - 0 B|- python官方文檔 - 0 B|- Python編程(第4版 套裝上下冊) - 0 B|- PyQt5快速開發與實戰(pdf+源碼) - 0 B|- linux - 0 B|- 征服PYTHON-語言基礎與典型應用.pdf - 67.40 MB|- 與孩子一起學編程_中文版_詳細書簽.pdf - 69.10 MB|- 用Python做科學計算.pdf - 6.10 MB|- 用Python寫網絡爬蟲.pdf - 9.90 MB|- 用Python進行自然語言處理(中文翻譯NLTK).pdf - 4.40 MB|- 像計算機科學家那樣思考 Python中文版第二版.pdf - 712.00 kB|- 網絡爬蟲-Python和數據分析.pdf - 6.90 MB|- 圖解機器學習.pdf - 59.40 MB|- 凸優化.pdf - 5.70 MB|- 數據挖掘導論.pdf - 2.50 MB|- 數據科學入門.pdf - 13.30 MB|- 數據結構與算法__Python語言描述_裘宗燕編著_北京:機械工業出版社_,_2016.01_P346.pdf - 74.30 MB|- 神經網絡與深度學習.pdf - 92.60 MB|- 深入Python3...
標簽:
python
上傳時間:
2022-06-06
上傳用戶:
-
|- 9.配套數據手冊 - 0 B|- 8.面包板接線軟件 - 0 B|- 7.物聯網實驗 - 0 B|- 6.圖形化編程 - 0 B|- 5.實驗接線圖 - 0 B|- 4.視頻教程 - 0 B|- 3.案例程序 - 0 B|- 2.開發環境 - 0 B|- 10.輔助軟件 - 0 B|- 1.學前先看 - 0 B|- CLB.ico - 17.00 kB|- Autorun.inf - 23 B
標簽:
arduino
iot
上傳時間:
2022-06-06
上傳用戶: