Это рекурсия просто. Быстрая сортировка как раз таки и применяет рекурсивный вызов функции. О принципах, преимуществах и недостатках ее использования можете почитать в интернете. И да, это применительно к любому ЯП. В кратце скажу, что главное требование рекурсии - это то, что бы последующий вызов рекурсии приближал алгоритм к завершению. Ну и главный недостаток это требование к оперативной памяти при большое обработке данных, так как каждый вызов такой рекурсии будет блокировать память.... Простой пример с рекурсией на том же си и нахождению факториала в 2 вариациях.
1) Рекурсия внутри 1 функции:
longlong Factorial(int n){
if(n == 1) return1;
return n * Factorial(n-1); // Здесь выполнил требование приближение рекурсии к завершению(то есть n стремится к 1(где исполнится условие выше))
}
2) Рекурсия между несколькими функциями:
int Fun2(int); // Прототип.int Fun1(int i){
if(i == -5){return i;}
return i + Fun2(i-1);
}
int Fun2(int i){
if(i == -5){return i;}
return i + Fun1(i-1);
}
이중 연결 목록입니다. 위의 코드에는 push_back만 있으므로 벡터로 대체될 가능성이 있습니다.
그렇지 않은 경우 시작과 끝에서 여백이 있는 배열을 통해 deque를 간단하게 구현할 수 있습니다. STL에서는 어떻게 든 구현 된 것 같습니다.
나는 std::deque 에 대해 구글링했는데, 그것은 당신이 쓰는 것과 같지만 ... 나는 그것을 사용하는 방법을 모르지만 그냥 벡터로 바꾸십시오 ... 일반적으로 예제는 교육적이며 원하지 않습니다. 엉망으로 만들고 모든 것이 비뚤어지게 작동해야 함을 확인하십시오)))
추신: F #에는 또 다른 예가 있습니다. 하지만 제 생각에는 이것은 이미 너무 많습니다.)
크기가 4 또는 8바이트인 데이터 조각에 대한 포인터입니다.
크기는 정렬로 인해 플랫폼에 따라 다릅니다. pragma pack 1과 같은 것을 사용하는 경우 크기는 동일합니다(1바이트).
나는 여전히 가끔 VS C++를 보고, asm에서 목록 모드로 컴파일한 다음 그것을 보면 많은 것이 분명해집니다. 예, 무섭게 들리지만 asm은 절대적인 진리입니다. 그리고 그 언어는 이해하기 어렵지 않습니다. 제대로 쓰기 어렵다.
예, 감사합니다 .. 그들이 말하는 것처럼 나는 알고 있었지만 잊어 버렸습니다. 왜냐하면 저는 프로그래머가 아니며 거의 하지 않습니다. :)
누구든지 시간과 지식이 있다면 도움을 받고 싶습니다. 이 소스를 MQL로 이식하고 싶지만 std::deque를 처리할 수 있을지 확신이 서지 않습니다.
여기에서 가져옴: https://habr.com/ru/sandbox/43916/
추신 : 나는 Hamming 네트워크의 다른 소스를 즉시 찾지 못했다고 구글링했습니다. 다른 소스에 대한 링크도 환영합니다 (이것은 Hopfield 네트워크가 아닙니다 !!! - Google은 지속적으로 함께 제공합니다)
누구든지 시간과 지식이 있다면 도움을 받고 싶습니다. 이 소스를 MQL로 이식하고 싶지만 std::deque를 처리할 수 있을지 확신이 서지 않습니다.
이중 연결 목록입니다. 위의 코드에는 push_back만 있으므로 벡터로 대체될 가능성이 있습니다.
그렇지 않은 경우 시작과 끝에서 여백이 있는 배열을 통해 deque를 간단하게 구현할 수 있습니다. STL에서는 어떻게 든 구현 된 것 같습니다.
이중 연결 목록입니다. 위의 코드에는 push_back만 있으므로 벡터로 대체될 가능성이 있습니다.
그렇지 않은 경우 시작과 끝에서 여백이 있는 배열을 통해 deque를 간단하게 구현할 수 있습니다. STL에서는 어떻게 든 구현 된 것 같습니다.
나는 std::deque 에 대해 구글링했는데, 그것은 당신이 쓰는 것과 같지만 ... 나는 그것을 사용하는 방법을 모르지만 그냥 벡터로 바꾸십시오 ... 일반적으로 예제는 교육적이며 원하지 않습니다. 엉망으로 만들고 모든 것이 비뚤어지게 작동해야 함을 확인하십시오)))
추신: F #에는 또 다른 예가 있습니다. 하지만 제 생각에는 이것은 이미 너무 많습니다.)
누구든지 시간과 지식이 있다면 도움을 받고 싶습니다. 이 소스를 MQL로 이식하고 싶지만 std::Alert( n.recognizeImage( a1_3 ) );
여기에서 가져옴: https://habr.com/ru/sandbox/43916/
추신 : 나는 Hamming 네트워크의 다른 소스를 즉시 찾지 못했다고 구글링했습니다. 다른 소스에 대한 링크도 환영합니다 (이것은 Hopfield 네트워크가 아닙니다 !!! - Google은 지속적으로 함께 제공합니다)
Igor, 나는 deque를 쓰는 것이 부적절하다고 생각합니다. 대부분의 경우 벡터로 충분합니다. stl 주제의 벡터를 사용하여 예제를 다시 작성하십시오.
나는 엉망이되고 싶지 않고 모든 것이 비뚤어지게 작동해야합니다)))
확인하기 위해 플러스에서 소스 코드와 폼의 코드를 실행했습니다.
두 경우 모두 수신: 1 1 0 4294967295
추신 : 그건 그렇고, 소스에 오류가 있습니다 - 어레이의 경계를 넘어서는 것입니다 (동지는 -1을 추가하는 것을 잊었습니다)
Igor, 나는 deque를 쓰는 것이 부적절하다고 생각합니다. 대부분의 경우 벡터로 충분합니다. stl 주제의 벡터를 사용하여 예제를 다시 작성하십시오.
확인하기 위해 플러스에서 소스 코드와 폼의 코드를 실행했습니다.
두 경우 모두 수신: 1 1 0 4294967295
추신 : 그건 그렇고, 소스에 오류가 있습니다 - 어레이의 경계를 넘어서는 것입니다 (동지는 -1을 추가하는 것을 잊었습니다)
영형! 너무 빨리! 고마워요 HUMAN!!!