Java - Vous cherchez une explication de l'algorithme suivant
扔个三星炸死你
扔个三星炸死你 2017-07-05 10:26:05
0
2
1109

On sait que le tableau linéaire A de longueur n adopte une structure de stockage séquentielle. Veuillez écrire un algorithme avec une complexité temporelle de O(n) et une complexité spatiale de O(1). élément dans l’élément de tableau linéaire.

void  Delete(ElemType A[ ],int  n)
∥A是有n个元素的一维数组,本算法删除A中所有值为item的元素。
{i=1;j=n;∥设置数组低、高端指针(下标)。
 while(i<j)
   {while(i<j && A[i]!=item)i++;         ∥若值不为item,左移指针。
    if(i<j)while(i<j && A[j]==item)j--;∥若右端元素为item,指针左移
    if(i<j)A[i++]=A[j--];}

Il ne peut pas fonctionner après la réécriture. Voici celui réécrit

.
package 线性表;

public class Work_10 {
    public Work_10(){
        int[] arr={2,34,4,4,5};
        int item=4;
        delete(arr,item,arr.length-1);
        for(int a:arr){
            System.out.print(a+" ");
        }
    }
    public static void delete(int[] array,int item,int n){
        int i=0,j=n;
        while(i<j){
            while(i<j&&array[i]!=item) i++;
            if(i<j) while(i<j&&array[j]==item) j--;
            if(i<j){
                array[i++]=array[j--];
            }
        }
    }
    public static void main(String[] args) {
        new Work_10();
    }
}

Vous ne savez pas comment le changer ?
Veuillez expliquer, monsieur

扔个三星炸死你
扔个三星炸死你

répondre à tous(2)
淡淡烟草味

Si vous souhaitez supprimer, recherchez d'abord, puis supprimez, je vous donnerai une recherche, et vous pourrez penser au reste et écrire une variante.

public static int search(byte[] a,int n, byte item) {
        int low = 0;
        int high = n - 1;

        while (low <= high) {
            int mid = (low + high) >>> 1;
            byte midVal = a[mid];

            if (midVal < item)
                low = mid + 1;
            else if (midVal > item)
                high = mid - 1;
            else
                return mid; // 找到item
        }
        return -(low + 1); // 没找到item
    }
世界只因有你

Oh, le numéro supplémentaire est dû au fait que le numéro que vous indiquez est erroné. Le processus de suppression se déroule bien.

Avant suppression, le contenu de votre tableau est 2,34,4,4,5, avec un total de 5 éléments.

Le contenu à supprimer est 4, ce qui signifie qu'il ne reste que 3 éléments après suppression, qui sont 2,34,5

Donc, votre résultat ne doit afficher que les 3 premiers éléments du tableau, et les deux derniers sont des éléments invalides.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal