tipo de colina java
A classificação Hill é um tipo de classificação por inserção e também pode ser chamada de método de incremento decrescente. A ideia básica é dividir um array em vários arrays, um pouco como o método dividir e conquistar, mas a divisão aqui é controlada por uma constante d.
Este 0<d<n, n é o comprimento da matriz. Este algoritmo possui a velocidade de ordenação por inserção e também pode ser considerado um algoritmo aprimorado. No algoritmo de inserção, se houver um menor número no final do array, o algoritmo de inserção duplicará o último.
Mover a posição para a primeira desperdiçará muito dinheiro. O uso dessa classificação Hill aprimorada pode alcançar uma movimentação de elementos de dados de longo alcance. Esta é a vantagem deste algoritmo.
Copie o código do código da seguinte forma:
pacote cn.cqu.coce.xutao;
classe pública shell3 {
public static void main(String args[]){
int a[]={7,43,23,5,3,2,0,6,74,9};
int n=a.comprimento;
para(int i=0;i<n;i++)
System.out.print(a[i]+"/t");
System.out.println();
for(int intervalo=n/2;gap>0;gap/=2){
for(int i=gap;i<n;i++){
for(int j=i-gap;j>=0&&a[j]>a[j+gap];j-=gap){
int temp=a[j+gap];
a[j+gap]=a[j];
a[j]=temperatura;
}
}
}
para(int i=0;i<n;i++)
System.out.print(a[i]+"/t");
System.out.println();
}
}
Segundo exemplo
Copie o código do código da seguinte forma:
classe Concha
{
public void shell_sort(int [] matrizes){
for(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){
for(int j=i;j>0;j=jd){
se(j<d)
quebrar;
if(matrizes[j]<matrizes[jd]){
int tmp;
tmp=matrizes[j];
matrizes[j]=matrizes[jd];
matrizes[jd]=tmp;
}
}
}
}
snp(matrizes);
}
}
public void snp(int[] matrizes){
for(int i=0;i<arrays.length;i++){
System.out.print(arrays[i]+" ");
}
System.out.println();
}
público estático void principal(String[] args)
{
Concha s=nova Concha();
int[] a={45,20,80,40,26,58,66,70};
s.shell_sort(a);
}
}
Resultados em execução:
Copie o código do código da seguinte forma:
---------- Java ----------
20 70 40 26 58 66 80
20 58 45 26 70 66 80
26 40 45 58 66 70 80
Saída concluída (demorou 0 segundos) - encerramento normal