clasificación de colina java
La clasificación por colinas es un tipo de clasificación por inserción y también se puede denominar vívidamente método de incremento de contracción. La idea básica es dividir una matriz en varias matrices, un poco como el método de divide y vencerás, pero la división aquí está controlada por una constante d.
Este 0<d<n, n es la longitud de la matriz. Este algoritmo tiene la velocidad de clasificación por inserción y también puede considerarse como un algoritmo mejorado. En el algoritmo de inserción, si hay un número más pequeño al final de la matriz, el algoritmo de inserción duplicará el último.
Mover la posición a la primera desperdiciará mucho dinero. El uso de esta clasificación Hill mejorada puede lograr un movimiento de elementos de datos a largo plazo. Ésta es la ventaja de este algoritmo.
Copie el código de código de la siguiente manera:
paquete cn.cqu.coce.xutao;
clase pública shell3 {
principal vacío estático público (String args []) {
int a[]={7,43,23,5,3,2,0,6,74,9};
int n=a.longitud;
para(int i=0;i<n;i++)
System.out.print(a[i]+"/t");
Sistema.out.println();
for(int brecha=n/2;brecha>0;brecha/=2){
for(int i=espacio;i<n;i++){
for(int j=i-espacio;j>=0&&a[j]>a[j+espacio];j-=espacio){
int temp=a[j+espacio];
a[j+espacio]=a[j];
a[j]=temperatura;
}
}
}
para(int i=0;i<n;i++)
System.out.print(a[i]+"/t");
Sistema.out.println();
}
}
Segundo ejemplo
Copie el código de código de la siguiente manera:
caparazón de clase
{
public void shell_sort(int [] matrices){
para(int d=5;d>0;d=d-2){
for(int c=0;c<arrays.length-d;c++){
for(int i=c;i<arrays.length;i=i+d){
para(int j=i;j>0;j=jd){
si(j<d)
romper;
si(matrices[j]<matrices[jd]){
intmp;
tmp=matrices[j];
matrices[j]=matrices[jd];
matrices[jd]=tmp;
}
}
}
}
snp(matrices);
}
}
snp vacío público (int [] matrices) {
for(int i=0;i<arrays.length;i++){
System.out.print(arrays[i]+" ");
}
Sistema.out.println();
}
principal vacío estático público (String [] argumentos)
{
Shell s=nuevo Shell();
int[]a={45,20,80,40,26,58,66,70};
s.shell_sort(a);
}
}
Resultados de ejecución:
Copie el código de código de la siguiente manera:
---------- java ----------
20 70 40 26 58 66 80
20 58 45 26 70 66 80
26 40 45 58 66 70 80
Salida completada (tardó 0 segundos): terminación normal