Rumah  >  Soal Jawab  >  teks badan

Java - Mencari penjelasan algoritma berikut

Adalah diketahui bahawa jadual linear A dengan panjang n menggunakan struktur storan berjujukan Sila tulis algoritma dengan kerumitan masa O(n) dan kerumitan ruang O(1). item dalam elemen jadual linear.

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--];}

Ia tidak boleh dijalankan selepas menulis semula. Ini adalah yang ditulis semula

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();
    }
}

Tidak tahu bagaimana untuk menukarnya?

Sila jelaskan, tuan

扔个三星炸死你扔个三星炸死你2635 hari yang lalu1036

membalas semua(2)saya akan balas

  • 淡淡烟草味

    淡淡烟草味2017-07-05 10:28:05

    Jika anda ingin memadam, cari dahulu, kemudian padamkan saya akan berikan anda cari, dan anda boleh fikirkan yang lain dan tulis varian.

    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
        }

    balas
    0
  • 世界只因有你

    世界只因有你2017-07-05 10:28:05

    Oh, nombor tambahan adalah kerana nombor yang anda keluarkan adalah salah Proses pemadaman adalah baik.

    Sebelum pemadaman, kandungan tatasusunan anda ialah 2,34,4,4,5, dengan jumlah 5 elemen.

    Kandungan yang perlu dipadam ialah 4, bermakna hanya tinggal 3 elemen selepas pemadaman iaitu 2,34,5

    Jadi output hasil anda hanya perlu mengeluarkan 3 elemen pertama tatasusunan, dan dua yang terakhir adalah elemen tidak sah.

    balas
    0
  • Batalbalas