Sisip, Padam Mengikut Indeks dan Anjak
Sisip ke dalam tatasusunan baharu, padam mengikut indeks dengan anjakan ke kiri dan berlatih menyemak sempadan dengan selamat.
Sisip, Padam Mengikut Indeks dan Anjak ialah pelajaran Java Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 3. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Java Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Java Academy merangkumi sejumlah 3 pelajaran.
Gambaran Keseluruhan Penyisipan
Sisipan ke dalam tatasusunan biasa biasanya menghasilkan tatasusunan baharu dengan satu ruang tambahan. Salin elemen sebelum kedudukan tersebut, letakkan nilai baharu, kemudian salin bahagian yang selebihnya dengan anjakan satu kedudukan.
Tatasusunan Baharu untuk Penyisipan
Sisipkan pada indeks i ke dalam tatasusunan baharu:
public class Main {
// Method to insert a value at a given index
static int[] insertAt(int[] a, int i, int val) {
// Create a new array, one element larger
int[] b = new int[a.length + 1];
// Copy elements before the insertion index
for (int p = 0; p < i; p = p + 1) {
b[p] = a[p];
}
// Insert the new value at position i
b[i] = val;
// Copy the rest of the elements after position i
for (int p = i; p < a.length; p = p + 1) {
b[p + 1] = a[p];
}
return b;
}
public static void main(String[] args) {
// Example array
int[] a = {5, 8, 9, 12};
// Insert 99 at index 2 (between 8 and 9)
int[] b = insertAt(a, 2, 99);
// Print new array
System.out.print("Array after insertion: ");
for (int x : b) {
System.out.print(x + " ");
}
}
}
Padam & Anjak
Padam mengikut indeks dengan menganjak ke kiri dan mengosongkan sel terakhir:
public class Main {
// Method to delete an element at index k
static void deleteAt(int[] a, int k) {
// Shift elements to the left, starting from index k
for (int i = k; i < a.length - 1; i = i + 1) {
a[i] = a[i + 1];
}
// Clear the last element (since it's now duplicated)
a[a.length - 1] = 0;
}
public static void main(String[] args) {
// Example array
int[] a = {5, 8, 9, 12, 15};
// Delete element at index 2 (value = 9)
deleteAt(a, 2);
// Print updated array
System.out.print("Array after deletion: ");
for (int x : a) {
System.out.print(x + " ");
}
}
}
Semakan Sempadan
Semakan sempadan membantu mengelakkan ralat semasa jalan. Indeks yang sah untuk n elemen ialah 0..n-1. Untuk penyisipan, i yang sah ialah 0..n.
public class Main {
// Insert a value at a given index
static int[] insertAt(int[] a, int i, int val) {
// Validate index (0 ≤ i ≤ a.length is allowed for insert)
if (i < 0 || i > a.length) {
throw new IllegalArgumentException("bad index");
}
int[] b = new int[a.length + 1];
for (int p = 0; p < i; p++) b[p] = a[p];
b[i] = val;
for (int p = i; p < a.length; p++) b[p + 1] = a[p];
return b;
}
// Delete a value at a given index
static void deleteAt(int[] a, int k) {
// Validate index (0 ≤ k < a.length is required for delete)
if (k < 0 || k >= a.length) {
throw new IllegalArgumentException("bad index");
}
for (int i = k; i < a.length - 1; i++) {
a[i] = a[i + 1];
}
a[a.length - 1] = 0; // clear the last slot
}
public static void main(String[] args) {
int[] a = {5, 8, 9, 12};
// Test insert
int[] b = insertAt(a, 2, 99);
System.out.print("After insert: ");
for (int x : b) System.out.print(x + " ");
System.out.println();
// Test delete
deleteAt(b, 3);
System.out.print("After delete: ");
for (int x : b) System.out.print(x + " ");
}
}
Tatasusunan Baharu untuk Pemadaman
Cipta salinan yang lebih kecil dengan melangkau indeks k:
public class Main {
// Method to create a new array without the element at index k
static int[] without(int[] a, int k) {
// Validate index
if (k < 0 || k >= a.length) {
throw new IllegalArgumentException("bad index");
}
// New array has one fewer element
int[] b = new int[a.length - 1];
// Copy elements before k
for (int p = 0; p < k; p = p + 1) {
b[p] = a[p];
}
// Copy elements after k (shift left by one)
for (int p = k + 1; p < a.length; p = p + 1) {
b[p - 1] = a[p];
}
return b;
}
public static void main(String[] args) {
int[] a = {5, 8, 9, 12, 15};
// Remove element at index 2 (value = 9)
int[] b = without(a, 2);
// Print original
System.out.print("Original array: ");
for (int x : a) System.out.print(x + " ");
System.out.println();
// Print new array
System.out.print("Array without index 2: ");
for (int x : b) System.out.print(x + " ");
}
}
Demonstrasi Penyisipan/Pemadaman
Jalankan: Lihat penyisipan ke dalam tatasusunan baharu, pemadaman di tempat dengan anjakan ke kiri dan pemadaman melalui salinan.
public class Main {
static int[] insertAt(int[] a, int i, int val) {
if (i < 0 || i > a.length) throw new IllegalArgumentException("bad index");
int[] b = new int[a.length + 1];
for (int p = 0; p < i; p = p + 1) b[p] = a[p];
b[i] = val;
for (int p = i; p < a.length; p = p + 1) b[p + 1] = a[p];
return b;
}
static void deleteAtShift(int[] a, int k) {
if (k < 0 || k >= a.length) throw new IllegalArgumentException("bad index");
for (int i = k; i < a.length - 1; i = i + 1) {
a[i] = a[i + 1];
}
a[a.length - 1] = 0;
}
static int[] without(int[] a, int k) {
if (k < 0 || k >= a.length) throw new IllegalArgumentException("bad index");
int[] b = new int[a.length - 1];
for (int p = 0; p < k; p = p + 1) b[p] = a[p];
for (int p = k + 1; p < a.length; p = p + 1) b[p - 1] = a[p];
return b;
}
static String join(int[] a) {
String s = "";
for (int i = 0; i < a.length; i = i + 1) {
s = s + a[i] + (i + 1 < a.length ? " " : "");
}
return s;
}
public static void main(String[] args) {
int[] a = {10, 20, 30, 40};
System.out.println("a = " + join(a));
int[] b = insertAt(a, 2, 99);
System.out.println("insertAt(2) = " + join(b));
deleteAtShift(a, 1);
System.out.println("deleteAt(1) = " + join(a));
int[] c = without(b, 3);
System.out.println("without(3) = " + join(c));
}
}
Semakan Padam & Anjak
Semakan ringkas: Petikan yang manakah memadam pada indeks k dengan menganjak ke kiri dan mengosongkan ruang terakhir?
Ringkasan & Seterusnya
Ringkasan: Anda telah menyisipkan dengan tatasusunan baharu, memadam melalui anjakan ke kiri dan mencipta salinan yang lebih kecil. Sentiasa semak sempadan.
Seterusnya: Beralih kepada tatasusunan objek dan algoritma mudah seperti pengiraan kekerapan.
Pelajari Java dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 104
- Pelajaran
- 374
Soalan Lazim
Adakah pelajaran “Sisip, Padam Mengikut Indeks dan Anjak” percuma?
Ya — teks penuh “Sisip, Padam Mengikut Indeks dan Anjak” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Java Academy, tingkat taraf kepada CoddyKit PRO. Kursus Java Academy merangkumi sejumlah 3 pelajaran.
Apakah yang akan saya pelajari dalam “Sisip, Padam Mengikut Indeks dan Anjak”?
Sisip ke dalam tatasusunan baharu, padam mengikut indeks dengan anjakan ke kiri dan berlatih menyemak sempadan dengan selamat. Anda berlatih Java Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Java Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Java Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 3.
Berapa lamakah pelajaran “Sisip, Padam Mengikut Indeks dan Anjak” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Java Academy ini?
Ya. Setiap pelajaran Java Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Asas Tatasusunan dan Lelaran
- Carian, Minimum/Maksimum dan Songsangan
- Sisip, Padam Mengikut Indeks dan Anjak