Java desde la entrada a la matriz maestra Capítulo 6

directorio

Creación y uso de matrices

El funcionamiento básico de la matriz

Matriz algoritmo de ordenación


Creación y uso de matrices

  • Crear una matriz unidimensional
    • int arr []; arr = new int [10]; primera declaración, y luego la asignación de memoria nueva
    • int [] arr = new int [  10]; asignar directamente declarando memoria
    • int arr []; arr = new int [] {1, 2, 3}; Inicialización
    • int [] arr = {1, 2, 3};
  • Crear una matriz de dos dimensiones
    • int arr [] []; arr = new int [2] [3]; primera declaración, se asigna
    • int [] [] arr = new int [2] [3]; asignar memoria declarando directamente
    • int [] [] arr = new int [2] []; arr [0] = new int [2]; arr [1] = new int [3]; asignar memoria separado para cada dimensión
    • int [] [] arr = {{1, 2}, {3, 4}}; Inicialización

El funcionamiento básico de la matriz

  • Obtiene una matriz de longitud

    • arr.Length; matriz de longitud propiedad
  • Reemplazar elementos de la matriz de relleno
    • Arrays.fill (int [] a, int value); llenar todos los valores de la matriz con los valores
    • Arrays.fill (int [] a, int fromIndex, int toIndex, int value); lleno especificado rango de valor de índice, incluyendo fromIndex, no incluyendo toIndex
      • Índice de fuera de rango se informó anormal
  • secuencia
    • Arrays.sort (arr); ascendente
  • Copiar la matriz
    • Arrays.copyOf (arr, newlength int); copiar la matriz, especifica la longitud de la nueva matriz
    • Arrays.copyOfRange (arr, int fromIndex, int toIndex); copias del rango especificado de la matriz en una nueva matriz, toIndex puede ser mayor que la longitud de arr
    • arr.clone (); array clon
  • Una matriz de consulta
    • Arrays.binarySearch (Object, Object key); posición clave de búsqueda en la matriz, devuelve el índice está presente, no hay ningún punto de inserción de retorno, devuelve el primer elemento clave es mayor que los índices negativos {4, 25, 10}, si las operaciones de búsqueda 8 se devuelve índice negativo 10, {4, 8, 10, 10, 25} es el índice 2, devoluciones -2
    • Arrays.binarySearch (Object, int fromIndex, int toIndex, clave de objeto);
      • Siempre devuelve un índice negativo del punto de inserción cuando no se encuentra el valor de retorno, para asegurar que el valor de retorno se encuentra mayor que o igual a 0
      • Índice de fuera de rango se informó anormal

Matriz algoritmo de ordenación

  • Ordenar burbuja
    • Comparación entre elementos adyacentes, y de intercambio.
    • Len es la longitud de la matriz, el número de la rueda de control de bucle exterior desde LEN 1-veces, los controles de bucle interiores cada una de índice del último elemento de la una a la nueva. 1 aumenta el número de rondas, al menos un bucle interior el índice más grande.
  • Selección directa Ordenar
    • La comparación directa, no hay intercambio, sólo el registro de índice, y luego intercambió cada tiempo para encontrar el valor máximo.
    • Ciclo de burbujas similares especie, pero mínimo más actualizado o valor máximo cuando el índice, el valor mínimo o máximo intercambio del último índice de la nueva ronda de directa después del final del bucle interno, el último índice para el valor mínimo o máximo.
  • Revertir la especie
package ex6_array;

public class ex6_20_Sort {
    int cmpNum = 0;
    int chgNum = 0;

    public static void main(String[] args) {
        int[] arrOri = {63, 4, 24, 1, 3, 15};
        int[] arr = arrOri.clone();
        int[] arr2 = arrOri.clone();
        int[] arr3 = arrOri.clone();
        ex6_20_Sort sorter = new ex6_20_Sort();  //创建排序类的对象
        sorter.bubbleSort(arr);  //调用冒泡排序方法将数组排序
        sorter.selectSort(arr2);  //调用直接选择排序方法将数组排序
        sorter.reverseSort(arr3);  //反转排序

    }

    /**
     * 冒泡排序
     *
     * @param array 要排序的数组
     */
    public void bubbleSort(int[] array) {
        cmpNum = 0;
        chgNum = 0;
        for (int i = 0; i < array.length - 1; i++) {
            for (int j = 1; j < array.length - i; j++) {
                if (array[j - 1] > array[j]) {
                    int tmp = array[j - 1];
                    array[j - 1] = array[j];
                    array[j] = tmp;
                    chgNum++;
                }
                cmpNum++;
            }
        }
        showArray(array);
        System.out.println("bubbleSort--" + "cmpNum: " + cmpNum + " chgNum: " + chgNum);
    }

    /**
     * 直接选择排序
     *
     * @param array 要排序的数组
     */

    public void selectSort(int[] array) {
        cmpNum = 0;
        chgNum = 0;
        int index;
        for (int i = 0; i < array.length - 1; i++) {
            index = 0;
            for (int j = 1; j < array.length - i; j++) {
                if (array[j] > array[index]) {
                    index = j;
                    chgNum++;
                }
                int tmp = array[array.length - i - 1];
                array[array.length - i - 1] = array[index];
                array[index] = tmp;
                cmpNum++;
            }
        }
        showArray(array);
        System.out.println("selectSort--" + "cmpNum: " + cmpNum + " chgNum: " + chgNum);
    }

    /**
     * 反转排序
     *
     * @param array 要排序的数组
     */
    public void reverseSort(int[] array) {
        System.out.print("before reverse: ");
        showArray(array);
        int tmp;
        int len = array.length;
        for (int i = 0; i < len / 2; i++) {
            tmp = array[i];
            array[i] = array[len - i - 1];
            array[len - i - 1] = tmp;
        }
        System.out.print("after reverse:");
        showArray(array);
    }

    /**
     * 显示数组中的所有元素
     *
     * @param array 要显示的数组
     */
    public void showArray(int[] array) {
        for (int x : array) {
            System.out.print(x + "-");
        }
        System.out.println();
    }

}

 

 

 

 

 

 

 

 

 

 

 

 

Publicado 46 artículos originales · ganado elogios 0 · Vistas 1033

Supongo que te gusta

Origin blog.csdn.net/weixin_37680513/article/details/103324555
Recomendado
Clasificación