데이터 구조 - 순서 표 8
6898 단어 데이터 구조
이미 알 고 있 는 1 차원 배열 A [m + n] 에는 두 개의 선형 표 (a 1, a 2,..., A m a 1, a 2,..., A m a1, a2,..., Am) 와 (b 1, b 2,..., b n b 1, b 2,..., b n b1, b2,..., bn) 가 순서대로 저장 되 어 있다.배열 의 두 순서 표 의 위 치 를 교환 합 니 다. 곧 (b 1, b 2,..., b n b 1, b 2,..., b n b1, b2,..., bn) 을 (a 1, a 2,..., A m a 1, a 2,..., A m a1, a2,..., Am) 앞 에 놓 습 니 다.프로 그래 밍 으로 이 문 제 를 해결 하 다.
2. 알고리즘 사상
이 생각 은 선형 대수 에서 기원 되 었 다.( A T B T ) T (A^TB^T)^T (ATBT)T = BA. A 의 순 서 를 뒤 바 꾸 고 B 의 순 서 를 뒤 바 꾸 는 것 이다.그리고 전체적인 순 서 를 뒤 집어 라.AB 에서 BA 까지 의 과정 을 실현 할 수 있다.
3. 코드 구현
순서 표 의 기본 구조 와 조작 은 다음 과 같다.https://blog.csdn.net/zfq17796515982/article/details/107140989
주 코드:
void reverse(SqList &L, int s, int e){ //
int mid = (s+e)/2;
for(int i=s;i<=mid;i++){
swap(L.data[i], L.data[s+e-i]);
}
}
void f(SqList &L, int n, int m){
reverse(L, 0, n-1);
reverse(L, n, n+m-1);
reverse(L, 0, n+m-1);
}
int main()
{
SqList L;
L.data = new ElemType[MaxSize];
L.length = 0;
int n, m;
cin>>n>>m; // 。
for(int i=0;i<n+m;i++){
ElemType c; cin>>c;
ListInsert(L, i+1, c);
}
ListPrint(L);
f(L, n, m);
ListPrint(L);
return 0;
}
4. 실행 결과
3 4
1 2 3 6 7 8 9
1 2 3 6 7 8 9
6 7 8 9 1 2 3
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.