Example of javascript bubble sort

Example of javascript bubble sort

1. What is Bubble Sort

Bubble Sort compares the sizes of two adjacent elements in turn. In each comparison process, the two elements are exchanged to achieve the purpose of order.

If an unordered sequence of numbers needs to be sorted from small to large, then when two elements are compared, it can be achieved by exchanging them, and the element on the left must be smaller than the element on the right.

If an unordered sequence of numbers needs to be sorted from largest to smallest, then when two elements are compared, this can be achieved by exchanging them, so that the element on the left is larger than the element on the right.

Just like the bubbles in a carbonated drink, bubbling from the bottom all the way to the top.

2. Give an example

If there is a set of numbers 2,4,7,5,3,6,1

Round 1:

i=0;

j (inner loop) loops 6 times. The work done by the inner loop is: compare two adjacent numbers, the larger one will be placed at the end and the smaller one at the front. The outer loop controls the number of times in one loop, and the inner loop makes judgments

j=0 1 2 3 4 5

2 2 2 2 2 2 2
4 4 4 4 4 4 4
7 7 7 5 5 5 5
5 5 5 7 3 3 3
3 3 3 3 7 6 6
6 6 6 6 6 7 1
1 1 1 1 1 1 7
arr[0] arr[1] arr[2]
arr[1] arr[2] arr[3]

Round 2:

i=1;

j (inner loop) loops 5 times

j=0 1 2 3 4 5

2 2 2 2 2 2
4 4 4 4 4 4
5 5 5 3 3 3
3 3 3 5 5 5
6 6 6 6 6 1
1 1 1 1 1 6
7 7 7 7 7 7
arr[0] arr[1] arr[2]
arr[1] arr[2] arr[3]

Round 3:

i=2;

j (inner loop) loops 4 times

2 2 2 2 2
4 4 3 3 3
3 3 4 4 4
5 5 5 5 1
1 1 1 1 5
6 6 6 6 6
7 7 7 7 7

Round 4:

i=3;

j (inner loop) loops 3 times

2 2 2 2
3 3 3 3
4 4 4 1
1 1 1 4
5 5 5 5
6 6 6 6
7 7 7 7

Round 5:

i=4;

2 2 2
3 3 1
1 1 3
4 4 4
5 5 5
6 6 6
7 7 7

Round 6:

i=5;

twenty one
1 2
3 3
4 4
5 5
6 6
7 7
*/

<script type="text/javascript" >
// Example 1:
function show(){
	var arr = [2,4,7,5,3,6,1];
	for(var i=0;i<arr.length-1;i++){
		for(var j=0;j<arr.length-1-i;j++){
			//1. Compare two adjacent numbers; the larger one is at the back, the smaller one is at the front if (arr[j] > arr[j+1] ) {
				var temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
		}
	}
	console.log(arr);
}

// Example 2:
	<body>
	    <input type="text" id="test">
	    <button type="button" onclick="show()">Press me</button>
	    <input type="text" id="sc">
	</body>

    function show() {
        let oT=document.getElementById("test").value;
        let sc = document.getElementById("sc");
        // console.log(sc);
        // console.log(oT);
        let arr = oT.split("");
        console.log(arr.length);
        for (var i = 0; i < arr.length - 1; i++) {
            for (var j = 0; j < arr.length - 1 - i; j++) {
                //1. Compare two adjacent numbers; the larger one is at the back, the smaller one is at the front if (arr[j] > arr[j + 1]) {
                    var temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        // console.log(arr);
        sc.value=arr;
    }
</script>

Summarize

This article ends here. I hope it can be helpful to you. I also hope you can pay more attention to more content on 123WORDPRESS.COM!

You may also be interested in:
  • JS front-end interview essential - basic sorting algorithm principles and implementation methods detailed explanation [insert/select/merge/bubble/quick sort]
  • JavaScript algorithm learning: bubble sort and selection sort
  • JavaScript data structure and algorithm basic sorting algorithm definition and efficiency comparison [bubble, selection, insertion sort]
  • Bubble sorting implemented in JavaScript and examples of counting the number of exchanges of adjacent numbers
  • Detailed explanation of quick sort and bubbling in JS
  • JavaScript implements the classic sorting algorithm bubble sort

<<:  HTML+css to create a simple progress bar

>>:  Javascript tree menu (11 items)

Recommend

MySQL InnoDB transaction lock source code analysis

Table of contents 1. Lock and Latch 2. Repeatable...

14 techniques for high-performance websites

Original : http://developer.yahoo.com/performance...

CSS text alignment implementation code

When making forms, we often encounter the situati...

Introduction to the method attribute of the Form form in HTML

1 method is a property that specifies how data is ...

Installation method of MySQL 5.7.18 decompressed version under Win7x64

Related reading: Solve the problem that the servi...

HTML form tag tutorial (3): input tag

HTML form tag tutorial, this section mainly expla...

Detailed explanation of Vue router routing guard

Table of contents 1. Global beforeEach 1. Global ...

Summary of several replication methods for MySQL master-slave replication

Asynchronous replication MySQL replication is asy...

How to implement variable expression selector in Vue

Table of contents Defining the HTML structure Inp...

Introduction to Docker Quick Deployment of SpringBoot Project

1. Install Docker First open the Linux environmen...

MySQL uses custom functions to recursively query parent ID or child ID

background: In MySQL, if there is a limited level...

ElementUI component el-dropdown (pitfall)

Select and change: click to display the current v...

CSS3 to achieve menu hover effect

Result: html <nav id="nav-1"> <...

RGBA alpha transparency conversion calculation table

Conversion between rgba and filter values ​​under...