Orden de selección de búsqueda binaria

Búsqueda binaria

1. La entrada es una lista ordenada de elementos (debe estar ordenada)

2. El elemento buscado está contenido en la lista y la búsqueda binaria devuelve la posición; de lo contrario, devuelve NULL

p.ej:

#include <iostream>
using namespace std;
int bianrySearch(int *a, int nLength, int val)
{
	int start = 0;
	int end = nLength - 1;
	int index = -1;
	while (start <= end)
	{
		index = (start + end) / 2;
		if (a[index] == val)
		{
			return index;
		}
		else if (a[index] < val)
		{
			start = index + 1;
		}
		else
		{
			end = index - 1;
		}
	}

	return -1;
}
int main()
{
	int a[] = { 0,1,2,3,4,5 };
	for (int i = 0; i < 6; i++)
	{
		cout << a[i] << "   ";
	}
	cout << endl;
	int k = bianrySearch(a, sizeof(a) / sizeof(int), 5);
	cout << "5在的位置为:";
	cout << k << endl;
	system("pause");
	return 0;
}

Notación Big O

Es una notación especial que indica qué tan rápido es el algoritmo

Sin referirse a la velocidad en segundos

Seleccionar ordenar

Orden de selección directa (Orden de selección), que es un algoritmo de ordenación simple e intuitivo. Primero encuentra el elemento más pequeño (grande) en la secuencia sin clasificar, lo almacena al comienzo de la secuencia ordenada y luego continúa encontrando el elemento más pequeño (grande) de los elementos restantes de la secuencia sin clasificar, y luego lo coloca al final de la secuencia ordenada. . Y así sucesivamente, hasta que todos los elementos estén ordenados.

Operación como se muestra

p.ej:

#include <iostream>
#include <algorithm>
using namespace std;
void SelectSort(int *a, int n)
{
	for (int i = 0; i < n - 1; i++)
	{
		for (int j = i+1; j < n; j++)
		{
			if (a[j] < a[i])
			{
				swap(a[j], a[i]);
			}
		}
	}
}
int main()
{
	int a[] = { 2,1,6,9,5,7,3 };
	SelectSort(a, 7);
	for (auto &s : a)
	{
		cout << s << " ";
	}
	cout << endl;
	system("pause");
	return 0;
}

 

Supongo que te gusta

Origin blog.csdn.net/qq_31702609/article/details/81292914
Recomendado
Clasificación