The second algorithm has a time complexity of O (n) and the number of comparisons is 3N/2
#include <iostream>#include<vector>#include<ctime>using namespacestd;voidMinmax (vector<int> A) {//from programming Zhu Ji Nanxiong intmin=a[0]; intmax=a[0]; intn=a.size (); for(intI=1; i<n;i++){ if(a[i]<min) {min=A[i]; } Else if(a[i]>max) {Max=A[i]; }} cout<<"min,max="<<min<<","<<max<<Endl; }voidMINMAX2 (vector<int> A) {//from an introduction to algorithms intn =a.size (); intmin=a[0]; intMax; intK; if(n%2!=0) {Max= a[0]; K=1; } Else{Max= a[1]; K=2; } for(; K<n;k + =2){ if(a[k]<a[k+1]){ if(a[k]<min) {min=A[k]; } if(a[k+1]>max) {Max= a[k+1]; } } Else{ if(a[k+1]<min) {min= a[k+1]; } if(a[k]>max) {Max=A[k]; } }} cout<<"min,max="<<min<<","<<max<<Endl;}intmain () {vector<int> a{ A, the, at,3, $, About, +, the}; clock_t St,fi,st2,fi2; St=clock (); Minmax (a); Fi=clock (); cout<<"Minmax:"<< (fi-st) <<Endl; St2=clock (); Minmax2 (a); Fi2=clock (); cout<<"Minmax:"<< (FI2-ST2) <<Endl; return 0;}
View Code
Minimum maximum number