Konsep dasar pengurutan gelembung (BubbleSort) adalah membandingkan dua bilangan yang berdekatan secara berurutan, meletakkan desimal di depan dan bilangan besar di belakang. Artinya, pada langkah pertama: pertama bandingkan angka pertama dan kedua, letakkan desimal terlebih dahulu dan angka besar terakhir. Kemudian bandingkan angka kedua dan angka ketiga, letakkan desimal di depan dan angka besar di belakang, dan terus seperti ini hingga membandingkan dua angka terakhir, letakkan desimal di depan dan angka besar di belakang. Ini adalah akhir dari perjalanan pertama, menyisakan jumlah terbesar di akhir. Pada langkah kedua: tetap memulai perbandingan dari pasangan angka pertama (karena mungkin karena tertukarnya angka kedua dan angka ketiga sehingga angka pertama tidak lagi lebih kecil dari angka kedua), masukkan desimalnya terlebih dahulu. , dan angka besar Setelah ditempatkan, perbandingan dilanjutkan hingga angka kedua hingga terakhir (posisi pertama hingga terakhir sudah menjadi yang terbesar). Di akhir lintasan kedua, diperoleh angka maksimum baru di posisi kedua hingga terakhir (sebenarnya, ini adalah angka kedua hingga terakhir di seluruh barisan). Lanjutkan seperti ini dan ulangi proses di atas hingga pengurutan akhirnya selesai.
Copy kode kodenya sebagai berikut:
kelas publik Paixu {
public static void main(String[] args) {
int[]a = {2,6,4,5,1,7,3};
ke dalam saya = 0;
ke dalam j = 0;
ke dalam n = 0;
untuk(i= 0;i<a.panjang-1;i++){
untuk(j=0;j<a.panjang-i-1;j++){
jika(a[j]>a[j+1]){
n = a[j];
a[j] = a[j+1];
a[j+1] = n;
}
}
}
untuk ( i = 0; i < a.panjang; i++) {
Sistem.keluar.println(a[i]);
}
}
}
Penyortiran Straight Select juga merupakan metode pengurutan sederhana. Ide dasarnya adalah: pilih nilai minimum dari R[0]~R[n-1] untuk pertama kalinya, tukarkan dengan R[0], lalu Pilih nilai minimum dari R{1}~R[n-1] dua kali dan tukarkan dengan R[1]...., Kali ke-i memilih nilai minimum dari R[i-1]~R[n-1] dan menukarnya dengan R[i-1],..., kali ke-n memilih nilai minimum dari R[ n-2]~ Pilih nilai minimum dari R[n-1], tukarkan dengan R[n-2], dan teruskan sebanyak n-1 kali untuk mendapatkan urutan terurut yang disusun dari kecil ke besar sesuai dengan kode pengurutan.
Copy kode kodenya sebagai berikut:
kelas publik Paixu {
public static void main(String[] args) {
int[]a = {2,6,4,5,1,7,3};
ke dalam saya = 0;
ke dalam j = 0;
ke dalam n = 0;
for(i= 0;i<a.panjang;i++){
for(j=i+1;j<a.panjang;j++){
jika(a[i]>a[j]){
n = a[saya];
a[j] = a[i];
a[saya] = n;
}
}
}
untuk ( i = 0; i < a.panjang; i++) {
Sistem.keluar.println(a[i]);
}
}
}
Contoh 2
Copy kode kodenya sebagai berikut:
paket cn.cqu.coce.xutao;
pemilihan kelas publik {
public static void main(String args[]){
int a[]={34,56,3,234,767,89,0,324,1,32,54,89,8};
int b[]=int baru[a.panjang];
System.arraycopy(a, 0, b, 0, a.panjang);
for(int i=0;i<a.panjang;i++){
Sistem.keluar.cetak(a[i]+"/t");
}
Sistem.keluar.println();
//Pilih pengurutan
for(int i=0;i<a.panjang-1;i++){
int menit=i;
for(int j=i+1;j<a.panjang;j++){
jika(a[min]>a[j])
menit=j;
}
jika(min!=i){
int suhu=a[menit];
a[min]=a[i];
a[i]=suhu;
}
}
for(int i=0;i<a.panjang;i++)
Sistem.keluar.cetak(a[i]+"/t");
Sistem.keluar.println();
//pengurutan gelembung
for(int i=0;i<b.panjang;i++){
untuk(int j=1;j<b.panjang-i;j++){
jika(b[j-1]>b[j]){
int te=b[j];
b[j]=b[j-1];
b[j-1]=te;
}
}
}
for(int i=0;i<b.panjang;i++)
Sistem.keluar.cetak(b[i]+"/t");
Sistem.keluar.println();
}
}