Advertisement
Guest User

Untitled

a guest
Feb 13th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | None | 0 0
  1.  
  2. #include <stdio.h>
  3. #include <conio.h>
  4. int MaxSubSet(int *A, int nA)//функция поиска максимальной длины неубывающей подпоследовательности
  5. {
  6. int k = 0;//вспомогательная переменная, счетчик количества чисел
  7. int max = 0;//пееременная, которая будет хранить длину максимальной подпоследовательности
  8. bool isFirst = true;//определяет, является ли данное число первым в подпоследовательности
  9.  
  10. for (int i = 1;i < nA - 1;i++)
  11. {
  12. if (A[i - 1] > A[i] && isFirst)//если число является первым и предыдущее число больше этого числа, то
  13. {
  14. isFirst = false;//переменная станет ложью
  15.  
  16. }
  17. if (!isFirst)//если число не является первым, то
  18. {
  19. k++;
  20. if (A[i + 1] < A[i])//если достигнут конец подполседовательности, то(следуещее число меньше предыдущей)
  21. {
  22.  
  23. isFirst = true;//следуеее число будет первым числом
  24. if (k > max) max = k;//если кколичество чиселл в подпоследовательности больше, чем в переменной max, то заменяем максимальное значение на текущее значение переменной k
  25. k = 0;//и обнуляем количество чисел
  26.  
  27.  
  28. }
  29.  
  30. }
  31.  
  32. }
  33. return max;//возвращаем длину максимальной подпоследовательности
  34. }
  35. int main()
  36. {
  37. int nA = 8;
  38. int A[] = { 10,7,3,3,15,14,15,3 };
  39. int maxLength = MaxSubSet(A, nA);
  40.  
  41. printf("%d ", maxLength);
  42. _getch();
  43. return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement