알고리즘 도론 학습 노트 (3) 초고
6342 단어 알고리즘 도론
몇 가지 소개념
4.1 인용 예--최대 하위 그룹
#include <iostream>
#include <algorithm>
using namespace std;
struct qu{
int left;
int right;
int result;
qu()
{
left=right=0;
result=0;
}
qu(int le, int ri)
{
left=le;
right=ri;
}
qu& operator =(const qu& temp)
{
left=temp.left;
right=temp.right;
result=temp.result;
return *this;
}
};
qu maxcross(int *a, int l, int m, int r)
{
int i,j;
int maxi=a[m], maxj=a[m+1];
int resulti=m,resultj=m+1;
int temp1=maxi,temp2=maxj;
for(i=m-1; i>=l; i--){
temp1+=a[i];
if(temp1>maxi){
maxi=temp1;
resulti=i;
}
}
for(j=m+2; j<=r; j++){
temp2+=a[j];
if(temp2>maxj){
maxj=temp2;
resultj=j;
}
}
qu Q(resulti,resultj);
Q.result=maxi+maxj;
return Q;
}
qu maxsub(int *a, int l, int r)
{
if(l>=r){
qu temp(l,l);
temp.result=a[l];
return temp;
}
int m=(l+r)/2;
qu Q[3];
Q[0]=maxsub(a,l,m);
Q[1]=maxsub(a,m+1,r);
Q[2]=maxcross(a,l,m,r);
qu maxq;
maxq=Q[0];
if(Q[1].result>maxq.result)
maxq=Q[1];
if(Q[2].result>maxq.result)
maxq=Q[2];
return maxq;
}
int main(){
int a[16]={13,-3,-25,20,-3,-16,-23,18,20,
-7,12,-5,-22,15,-4,7};
qu re;
re=maxsub(a,0,15);
cout<<re.left<<" "<<re.right<<endl;
cout<<re.result<<endl;
return 0;
}
4.2 행렬 곱셈
S1=B12−B22
S2=A11+A12
S3=A21+A22
S4=B21−B11
S5=A11+A22
S6=B11+B22
S7=A12−A22
S8=B21+B22
S9=A11−A21
S10=B11+B12
P1=A11⋅S1
P2=S2⋅B22
P3=S3⋅B11
P4=A22⋅S4
P5=S5⋅S6
P6=S7⋅S8
P7=S9⋅S10
C11=P5+P4−P2+P6
C12=P1+P2
C21=P3+P4
C22=P5+P1−P3−P7
4.3 소박한 대입법(수학 귀납법)
수학 귀납법의 기본 지식을 운용하는 동시에 점진 기호가 생략한 비교적 작은 항목을 고려한다.
4.4 본질의 귀속수법(구조 분석)
주요 목적은 좋은 추측을 생성하는 것이기 때문에 통상적으로 매우 정확하지 않다
다음을 포함합니다.
4.5 이성적인 주법(성질 사용)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
이분 검색 알고리즘의 귀속과 비귀속 실현《알고리즘 도론》 제3판 P22, 2.3-5 연습문제 귀속 실현 비귀속 실현 주: 단귀환을 비귀환으로 바꾸면 순환으로 해결할 수 있다.쌍귀환을 비귀환으로 바꾸고 순환을 제외하고는 창고나 대열을 빌려야 한다. 저자: ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.