int main() { setlocale(LC_ALL, "Rus"); printf("Домашнее задание №3\n"); printf("Выберите задачу: 1 - пузырьковая сортировка и пузырьковая сортировка с оптимизацией (сравнение)\n"); printf("Выберите задачу: 2 - шейкерная сортировка с оптимизацией\n"); printf("Выберите задачу: 3 - бинарный поиск\n"); printf("Выберите задачу: 4 - измерение количества операций по п.1 и п.2 \n"); int variant = 0; scanf("%i", &variant); switch (variant) { case 1: Sol1(); break; case 2: Sol2(); break; case 3: Sol3(); break; case 4: Sol4(); break; default: printf("Пока!"); break; } return 0; }
// add to statistics, and to weighted average solution and covariance void add(const Vector<double>& Sol, const Matrix<double>& Cov) throw(Exception) { try { // add to the statistics for(int i=0; i<3; i++) S[i].Add(Sol(i)); // NB do NOT include clock(s); this can ruin the position average Vector<double> Sol3(Sol); Sol3.resize(3); // assumes position states come first Matrix<double> Cov3(Cov,0,0,3,3); // information matrix (position only) Matrix<double> Info(inverseSVD(Cov3)); if(N == 0) { // first call: dimension and set to zero sumInfo = Matrix<double>(3,3,0.0); sumInfoState = Vector<double>(3,0.0); } // add to the total information sumInfo += Info; sumInfoState += Info * Sol3; ++N; } catch(Exception& e) { GPSTK_RETHROW(e); } }