# How To Program Selection Sorting And Bubble Sorting

This chapter introduces the basic concept of selection sorting and bubble sorting. In the programming content of sorting, the most famous is undoubtedly selective sorting and bubble sorting. Today, let us look at the specific code implementation of these two sorting schemes.

### 1. Selection Sorting

The idea of sorting by selection method:

Compare the first place with all the others, as long as it is smaller than the first place, move to the first place.

After the comparison, the first place is the smallest.

Then compare the second place with all the rest, as long as it is smaller than the second place, then switch to the second place.

After the comparison, the second place is the second smallest and so on.

The specific code is as follows:

public class sort {

public static void main(String[] args) {

int a [] = new int[]{10,30,20,50,40};

//Before sorting, print out the content

for (int i = 0; i < a.length; i++) {

System.out.print(a[i] + ” “);

}

System.out.println(” “);

//Selection order

//Step 1: Compare the first bit with all other bits

//If it is found that the data in other locations is smaller than the first one, exchange it

for (int i = 1; i < a.length; i++) {

if(a[i]<a){

int temp = a;

a = a[i];

a[i] = temp;

}

}

//Print out the content

//It can be found that the smallest number is at the top

for (int i = 0; i < a.length; i++) {

System.out.print(a[i] + ” “);

}

System.out.println(” “);

//Step 2: Compare the second bit with all the remaining bits

for (int i = 2; i < a.length; i++) {

if(a[i]<a){

int temp = a;

a = a[i];

a[i] = temp;

}

}

//Print out the content

//It can be found that the penultimate number is in the second position

for (int i = 0; i < a.length; i++) {

System.out.print(a[i] + ” “);

}

System.out.println(” “);

//Can find a pattern

//The moving position is gradually increased from 0

//So you can put a layer of loop on the outside

for (int j = 0; j < a.length-1; j++) {

for (int i = j+1; i < a.length; i++) {

if(a[i]<a[j]){

int temp = a[j];

a[j] = a[i];

a[i] = temp;

}

}

}

//Prent out the content

for (int i = 0; i < a.length; i++) {

System.out.print(a[i] + ” “);

}

System.out.println(” “);

}

}

The final output of the console:

### 2. Bubble Sorting

The idea of bubbling sorting:

The first step: starting from the first digit, compare the two adjacent ones.

If it is found that the former is larger than the latter, the larger data is exchanged at the back. After the cycle comparison is completed, the last bit is the largest.

Step 2: Do it again, but don’t compare the last digit and so on.

The specific code is as follows:

public class sort {

public static void main(String[] args) {

int a [] = new int[]{10,30,20,50,20};

//Before sorting, print out the content

for (int i = 0; i < a.length; i++) {

System.out.print(a[i] + ” “);

}

System.out.println(” “);

//Bubble sort

//The first step: starting from the first digit, compare the two adjacent ones

//If it is found that the front is larger than the back, then the big data is exchanged at the back

for (int i = 0; i < a.length-1; i++) {

if(a[i]>a[i+1]){

int temp = a[i];

a[i] = a[i+1];

a[i+1] = temp;

}

}

//Print out the content

//It can be found that the biggest is at the end

for (int i = 0; i < a.length; i++) {

System.out.print(a[i] + ” “);

}

System.out.println(” “);

//Step 2: Do it again, but don’t compare the last digit

for (int i = 0; i < a.length-2; i++) {

if(a[i]>a[i+1]){

int temp = a[i];

a[i] = a[i+1];

a[i+1] = temp;

}

}

//Print out the content

//It can be found that the penultimate is in the penultimate position

for (int i = 0; i < a.length; i++) {

System.out.print(a[i] + ” “);

}

System.out.println(” “);

//You can find a pattern

//The back boundary is shrinking

//So you can put a layer of loop on the outside

for (int j = 0; j < a.length; j++) {

for (int i = 0; i < a.length-j-1; i++) {

if(a[i]>a[i+1]){

int temp = a[i];

a[i] = a[i+1];

a[i+1] = temp;

}

}

}

//Print out the content

for (int i = 0; i < a.length; i++) {

System.out.print(a[i] + ” “);

}

System.out.println(” “);

}

}

The final output of the console:

### 3. Exercise-Sort

First create an array of length 8 and fill it with random numbers.

First use the selection method to sort.

Then use the bubble method to sort it backwards.

The specific code is as follows:

public class sort {

public static void main(String[] args) {

int a[] = new int;

// Fill with random numbers

for (int i = 0; i < a.length; i++)

a[i] = (int) (Math.random() * 100);

// Before the sequence, print out the content

for (int i = 0; i < a.length; i++) {

System.out.print(a[i] + ” “);

}

System.out.println(” “);

// Selection order

for (int j = 0; j < a.length – 1; j++) {

for (int i = j + 1; i < a.length; i++) {

if (a[i] < a[j]) {

int temp = a[j];

a[j] = a[i];

a[i] = temp;

}

}

}

// Print out the content

for (int i = 0; i < a.length; i++) {

System.out.print(a[i] + ” “);

}

System.out.println();

// Bubble sort

for (int j = 0; j < a.length; j++) {

for (int i = 0; i < a.length – j – 1; i++) {

if (a[i] < a[i + 1]) {

int temp = a[i];

a[i] = a[i + 1];

a[i + 1] = temp;

}

}

}

// Print out the content

for (int i = 0; i < a.length; i++) {

System.out.print(a[i] + ” “);

}

System.out.println(” “);

}

}

The final output of the console:

By studying the concepts of selection sorting and bubble sorting, you can define your own array sorted from small to large. These two sorting methods will give you good ideas for designing sorting code.