Tabla de contenido
-
operación constante
Interpretación : si la operación no tiene nada que ver con la cantidad de datos de muestra, cada operación se completa en un tiempo fijo.
Por ejemplo : operaciones aritméticas comunes (+-*/...)
Operaciones comunes con bits (>>,|, &,^...)
Asignación, comparación, autoincremento y autosustracción, acierto directo por desplazamiento de dirección en la matriz, etc.
-
complejidad del tiempo
Interpretación : como indicador del número de operaciones de Changshu en el proceso del algoritmo , también es un estándar para juzgar la calidad de un algoritmo. Por lo general, se denota por (pronunciado O grande) O ().
De acuerdo con el algoritmo para resumir la expresión de su número constante de operaciones, solo se retiene el elemento de orden más alto ; no se requiere el coeficiente del elemento de orden más alto, y se deja f (N), y la complejidad del tiempo es O (f(N)).
(PD: al juzgar un algoritmo, primero mire el índice de complejidad del tiempo y luego analice el tiempo de ejecución real en diferentes muestras).
-
Ordenamiento de burbuja
Breve descripción: Una matriz desordenada, de izquierda a derecha, cada dos números adyacentes se comparan, y el número con un valor mayor se intercambia a la derecha para completar el arreglo ordenado. (Cada ronda de recorrido solo puede garantizar que el número más a la derecha sea el más grande) --- O(N²)
Simule una matriz desordenada, compare cada dos, la fila superior son los elementos de la matriz y la fila inferior es su posición.
Primera vez: 0~N-1
La segunda vez: 0~N-2
......
Primero piense por usted mismo, luego mire la implementación del código
public tatic void BubbleSort(int[] arr){
if(arr==null||arr.length<2){
break;
}
for(int i=0;i<arr.length;i++){
if(arr[i]>arr[i+1]){
swap(arr,i,i+1);//交换位置
}
}
}
public static void swap(int[] arr,int i,int j){
arr[i] = arr[i]^arr[j];
arr[j] = arr[i]^arr[j];
arr[i] = arr[i]^arr[j];
}
Primero juzgue que la matriz existe y que su longitud es mayor que 2, y luego la ordenamos (para evitar problemas), necesitamos repetir N-1 veces, la posición del último dígito es N-1 y juzgar directamente la tamaño en él.
-
XOR^
Para explicar la función de intercambio escrita aquí, primero comprenda ^ (exclusivo o), que es una especie de operación de bits
p.ej:
1^0=1
1^1=0
0^0=0 igual a 0, diferente a 1
su naturaleza básica
(1) N^N=0; N^0=N Cualquier número XOR en sí mismo es 0, cualquier número XOR 0 es en sí mismo.
(2) La operación XOR se ajusta a las leyes asociativa y conmutativa.
(3) De los dos elementos anteriores a la derecha, se puede concluir que todos los elementos en una matriz se someten a XOR una vez, y el resultado sigue siendo el mismo sin importar en qué orden se encuentren en el medio.
Mire la función de intercambio anterior nuevamente
Suposición: a = A, b = B
a = a^b = A^B;
b = a ^ b = A ^ B ^ B = A ^ 0 = A;
a = a^b = A^B^A = B^0 = B;
Hasta ahora se han intercambiado los valores de a y b.