Ordenar parcialmente una matriz C

Tengo una matriz que se ve así:

int array[] = {4.53, 3.65, 7.43, 9.54, 0.72, 0.0}

Me pregunto qué método puedo usar para ordenar parcialmente esta matriz para traer los tres dobles más grandes al frente. Estoy buscando el método más eficiente para obtener los tres números más altos en esta matriz.

Hasta ahora he estado usandoqsort, pero solo estoy buscando otro método para hacer esto que podría ser aún más rápido. Yo sé esoqsort esO(nlogn) para los mejores casos yO(n^2) para los peores casos, pero ¿existe un método aún más eficiente para lograr este problema? Lo que quiero decir con eficiente es solo una forma más rápida de hacerlo, mejor queO(nlogn).

Cualquier ayuda sería genial

Respuestas a la pregunta(4)

Su respuesta a la pregunta