La imagen no viene en la posición correcta.

La imagen no viene en la posición correcta.

Estoy agregando una imagen usando el comando \includegraphic, pero aparece en la parte superior de la página y no está en la posición correcta.

Vea mi código a continuación:

\documentclass{amsart}

\usepackage{a4wide}
\newtheorem{mydef}{Definition}

\usepackage[T1]{fontenc}
\newtheorem{thm}{Theorem}
\renewcommand{\baselinestretch}{1.5} 

\usepackage{tabularx}
\usepackage{algorithm,algpseudocode}
\usepackage{tabularx}
\usepackage{amsthm}
\newtheorem{definition}{Definition}[section] 
\usepackage{graphicx}
\usepackage{tabularx,lipsum,environ,amsmath,amssymb}
\usepackage{tabularx}

\makeatletter
\newcommand{\problemtitle}[1]{\gdef\@problemtitle{#1}}% Store problem title
\newcommand{\probleminput}[1]{\gdef\@probleminput{#1}}% Store problem input
\newcommand{\problemquestion}[1]{\gdef\@problemquestion{#1}}% Store problem question
\NewEnviron{problem}{
  \problemtitle{}\probleminput{}\problemquestion{}% Default input is empty
  \BODY% Parse input
  \par\addvspace{.5\baselineskip}
  \noindent
  \begin{tabularx}{\textwidth}{@{\hspace{\parindent}} l X c}
    \multicolumn{2}{@{\hspace{\parindent}}l}{\@problemtitle} \\% Title
    \textbf{Input:} & \@probleminput \\% Input
    \textbf{Question:} & \@problemquestion% Question
  \end{tabularx}
  \par\addvspace{.5\baselineskip}
}

\newcommand{\avsum}{\mathop{\mathpalette\avsuminner\relax}\displaylimits}

\makeatletter
\newcommand\avsuminner[2]{%
  {\sbox0{$\m@th#1\sum$}%
   \vphantom{\usebox0}%
   \ooalign{%
     \hidewidth
     \smash{\vrule height\dimexpr\ht0+1pt\relax depth\dimexpr\dp0+1pt\relax}%
     \hidewidth\cr
     $\m@th#1\sum$\cr
   }%
  }%
}
\makeatother

\title{Computing Prime Set in \mathcal{O}(n) Running Time}
\author{Sh \\~\\ IIT[![enter image description here][1]][1] Ga}

\begin{document}

\section{Computing Primes beween 2 and $k-1$}

\begin{problem}
  \problemtitle{$$\textsc{Prime Set}}
  \probleminput{ An array $N$ is given such that $N[i] = i,2\le  i \le k-1$ .}
  \problemquestion{ Compute set $Q_{k-1}$ which contains primes between 2 and $k-1$} 
\end{problem}

 We want to compute the primes beween 2 and $k-1$. A simple algorithm is to start with 2 and mark the elements that are multiple of two and in the second iteration mark the multiples of 3 and so on. Let $N$ be an array containing numbers from 2 to $k-1$ such that $N[i] = i$.

\begin{itemize}
\item For $i =2$ to $k$
\begin{itemize}
\item Mark the multiples of $i$ in array $N$. 
\end{itemize}
\item End For
\end{itemize}

It is easy to see that above algorithm takes $\mathcal{O}(k \log k)$ .  

 We want to improve the running time of the above algorithm from time  $O(k \log \log k)$ to $O(k)$ time.  The problem with the above algorithm is that there will be many elements in $N$ which get marked multiple times like 6, 12 etc.  To avoid that an element get marked multiple times, we will use a doubly linked list with pointers to array $N$.  See the image below for more detail.

\begin{figure}
\includegraphics[scale=0.1]{Downloads/img.jpg} 
\end{figure}

From the above diagram it is clear that we are maintaing a one pointer from node $i$ of the list $L$ to index $i$ of array $N$ and one pointer from index $i$ of $N$ to $i$th node of list $L$. Now algorithm to compute the prime set$Q_{k-1}$ is given below:

\begin{itemize}
\item Pick the smallest unmarked element $i \ge 2$ in $N$ and add $i$ to $Q_{k-1}$.
\item Starting from the first node, walk up the list $L$ in increasing order until we find the smallest number $r$ in it such that $r.i \ge k-1$. 
\item Walk down the list $L$ ( crucially, in decreasing order ) from the node $r$, and for each $l$ in $L$, seen, mark the element $N[i.l]$ and delete the node containing $i.l$ from $L$ ( this node in $L$ is accessed through the pointer from the $(i.l)$th location in $N$ ).
\item If $N$ has any unmarked element $\ge 2$, go back to first step
\end{itemize}

In the first round all the multiple of 2 will get marked. It is easy to verify that each element in the array will get marked just once.  The overall running time of above algorithm is $O(k)$ ( verify this ). 


\end{document}

Pregunta: ¿Cómo modificar para que el nombre del autor y la imagen estén en la posición correcta (donde agregué la imagen)?

Ver mi pdf completado:

ingrese la descripción de la imagen aquí

Respuesta1

editar: De sus comentarios se desprende que también tiene problemas para agregar el título y el autor al comienzo del documento. esto es simple de lograr con:

...
\author{my name}
\title{Computing Prime Set in $\mathcal{O}(n)$ Running Time}% <--- added math environment

\begin{document}
\maketitle% <--- added 
...

considerando el fragmento de código anterior ymi respuestay agregando opciones para la colocación del figureflotador, obtengo:

ingrese la descripción de la imagen aquí

\documentclass{amsart}
\usepackage{geometry}%

\usepackage{tikz}\usetikzlibrary{arrows.meta,
                matrix,
                positioning,
                }
\usepackage{amsmath}

\renewcommand{\baselinestretch}{1.5}
\usepackage{lipsum}


\author{my name}
\title{Computing Prime Set in $\mathcal{O}(n)$ Running Time}

\begin{document}
\maketitle % <---

\lipsum[1]
\begin{figure}[ht]% <---
    \centering
    \begin{tikzpicture}[
    node distance = 21mm and 7mm,
    box/.style = {draw, minimum size=6mm, inner sep=0pt, outer sep=0pt, anchor=center},
      pin edge = {Straight Barb-, shorten <=1mm,semithick}
                        ]
\matrix (m) [matrix of nodes,
             nodes={box},
             column sep=-\pgflinewidth,
             inner sep=0pt,
             pin=120:Array]
{
  1 & 2 & 3 &  \quad$\dotsm$\quad\vphantom{4}  & k     \\
};
\node (h2) [box,below=of m-1-2] {2};
\node (h1) [box, left=of h2,
            pin=240:head]       {1};
\node (h3) [box,right=of h2]    {3};
\node (hk) [box,below right=of m-1-5] {$k$};
%
\draw[dashed,-Straight Barb, shorten <=1mm, shorten >=1mm]
    (m-1-1.south) edge [bend right]   (h1.north)
    (h1.north)    edge [bend right]   (m-1-1.south)
    (m-1-2.south) edge [bend right]   (h2.north)
    (h2.north)    edge [bend right]   (m-1-2.south)
    (m-1-3.south) edge [bend right]   (h3.north)
    (h3.north)    edge [bend right]   (m-1-3.south)
    (m-1-5.south) edge [bend right]   (hk.north)
    (hk.north)     to  [bend right]   (m-1-5.south);
%
\draw[-Straight Barb, transform canvas={yshift= 1mm}]
    (h1) edge   (h2)    (h2) edge   (h3);
\draw[Straight Barb-, transform canvas={yshift=-1mm}]
    (h1) edge   (h2)    (h2) edge   (h3);
%
\draw[loosely dotted, ultra thick, shorten <=3mm, shorten >=3mm]
    (h3) -- (hk);
    \end{tikzpicture}
\caption{Computing primes between $2$ and $k-1$}
    \label{fig:primes}
\end{figure}
\lipsum[2]
\end{document}

esto es lo que buscas???

nota: revise su preámbulo nuevamente. algunos paquetes se cargan (innecesariamente) dos veces...

información relacionada