1. Bubble sorting
function BubbleSort(array) { var length = ; for (var i = length - 1; i > 0; i--) { // Used to narrow down the scope for (var j = 0; j < i; j++) { //Buble in range, the largest one in this range will rise to the end if (array[j] > array[j+1]) { var temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } } (array); ("-----------------------------"); } return array; } var arr = [10,9,8,7,7,6,5,11,3]; var result = BubbleSort(arr); (result); /* [ 9, 8, 7, 7, 6, 5, 10, 3, 11 ] ----------------------------- [ 8, 7, 7, 6, 5, 9, 3, 10, 11 ] ----------------------------- [ 7, 7, 6, 5, 8, 3, 9, 10, 11 ] ----------------------------- [ 7, 6, 5, 7, 3, 8, 9, 10, 11 ] ----------------------------- [ 6, 5, 7, 3, 7, 8, 9, 10, 11 ] ----------------------------- [ 5, 6, 3, 7, 7, 8, 9, 10, 11 ] ----------------------------- [ 5, 3, 6, 7, 7, 8, 9, 10, 11 ] ----------------------------- [ 3, 5, 6, 7, 7, 8, 9, 10, 11 ] ----------------------------- [ 3, 5, 6, 7, 7, 8, 9, 10, 11 ] */
2. Select sorting
function SelectionSort(array) { var length = ; for (var i = 0; i < length; i++) { //Narrow the selection var min = array[i]; //Assuming that the first one in the range is the minimum value var index = i; //Record the minimum value subscript for (var j = i + 1; j < length; j++) { //Select the minimum value in the range if (array[j] < min) { min = array[j]; index = j; } } if (index != i) { //Swap the minimum value in the range to the first one in the range var temp = array[i]; array[i] = array[index]; array[index] = temp; } (array); ("---------------------"); } return array; } var arr = [ 1, 10, 100, 90, 65, 5, 4, 10, 2, 4 ]; var result = SelectionSort(arr); (result); /* [ 1, 10, 100, 90, 65, 5, 4, 10, 2, 4 ] --------------------- [ 1, 2, 100, 90, 65, 5, 4, 10, 10, 4 ] --------------------- [ 1, 2, 4, 90, 65, 5, 100, 10, 10, 4 ] --------------------- [ 1, 2, 4, 4, 65, 5, 100, 10, 10, 90 ] --------------------- [ 1, 2, 4, 4, 5, 65, 100, 10, 10, 90 ] --------------------- [ 1, 2, 4, 4, 5, 10, 100, 65, 10, 90 ] --------------------- [ 1, 2, 4, 4, 5, 10, 10, 65, 100, 90 ] --------------------- [ 1, 2, 4, 4, 5, 10, 10, 65, 100, 90 ] --------------------- [ 1, 2, 4, 4, 5, 10, 10, 65, 90, 100 ] --------------------- [ 1, 2, 4, 4, 5, 10, 10, 65, 90, 100 ] --------------------- [ 1, 2, 4, 4, 5, 10, 10, 65, 90, 100 ] */
3. Insert sorting
function InsertionSort(array) { var length = ; for (var i = 0; i < length - 1; i++) { //i represents the last subscript of the sequence that has been sorted var insert = array[i+1]; var index = i + 1;//Record the subscript to be inserted for (var j = i; j >= 0; j--) { if (insert < array[j]) { //The item to be inserted is smaller than it, move it backward array[j+1] = array[j]; index = j; } } array[index] = insert; (array); ("-----------------------"); } return array; } var arr = [100,90,80,62,80,8,1,2,39]; var result = InsertionSort(arr); (result); /* [ 90, 100, 80, 62, 80, 8, 1, 2, 39 ] ----------------------- [ 80, 90, 100, 62, 80, 8, 1, 2, 39 ] ----------------------- [ 62, 80, 90, 100, 80, 8, 1, 2, 39 ] ----------------------- [ 62, 80, 80, 90, 100, 8, 1, 2, 39 ] ----------------------- [ 8, 62, 80, 80, 90, 100, 1, 2, 39 ] ----------------------- [ 1, 8, 62, 80, 80, 90, 100, 2, 39 ] ----------------------- [ 1, 2, 8, 62, 80, 80, 90, 100, 39 ] ----------------------- [ 1, 2, 8, 39, 62, 80, 80, 90, 100 ] ----------------------- [ 1, 2, 8, 39, 62, 80, 80, 90, 100 ] */
4. Hill sort
function ShellSort(array) { var length = ; var gap = (length / 2); while (gap > 0) { for (var i = gap; i < length; i++) { var insert = array[i]; var index = i; for (var j = i; j >= 0; j-=gap) { if (insert < array[j]) { array[j+gap] = array[j]; index = j; } } array[index] = insert; } (array); ("-----------------------"); gap = (gap/2 - 0.1); } return array; } var arr = [ 13, 14, 94, 33, 82, 25, 59, 94, 65, 23, 45, 27, 73, 25, 39, 10 ]; var result = ShellSort(arr); (result); /* [ 13, 14, 45, 27, 73, 25, 39, 10, 65, 23, 94, 33, 82, 25, 59, 94 ] ----------------------- [ 13, 14, 39, 10, 65, 23, 45, 27, 73, 25, 59, 33, 82, 25, 94, 94 ] ----------------------- [ 13, 10, 39, 14, 45, 23, 59, 25, 65, 25, 73, 27, 82, 33, 94, 94 ] ----------------------- [ 10, 13, 14, 23, 25, 25, 27, 33, 39, 45, 59, 65, 73, 82, 94, 94 ] ----------------------- [ 10, 13, 14, 23, 25, 25, 27, 33, 39, 45, 59, 65, 73, 82, 94, 94 ] */
5. Ordering
function MergeSort(array) { var length = ; if (length <= 1) { return array; } else { var num = (length/2); var left = MergeSort((0, num)); var right = MergeSort((num, length)); return merge(left, right); } } function merge(left, right) { (left); (right); var a = new Array(); while ( > 0 && > 0) { if (left[0] <= right[0]) { var temp = (); (temp); } else { var temp = (); (temp); } } if ( > 0) { a = (left); } if ( > 0) { a = (right); } (a); ("-----------------------------"); return a; } var arr = [ 13, 14, 94, 33, 82, 25, 59, 94, 65, 23, 45, 27, 73, 25, 39, 10 ]; var result = MergeSort(arr); (result); /* [ 13 ] [ 14 ] [ 13, 14 ] ----------------------------- [ 94 ] [ 33 ] [ 33, 94 ] ----------------------------- [ 13, 14 ] [ 33, 94 ] [ 13, 14, 33, 94 ] ----------------------------- [ 82 ] [ 25 ] [ 25, 82 ] ----------------------------- [ 59 ] [ 94 ] [ 59, 94 ] ----------------------------- [ 25, 82 ] [ 59, 94 ] [ 25, 59, 82, 94 ] ----------------------------- [ 13, 14, 33, 94 ] [ 25, 59, 82, 94 ] [ 13, 14, 25, 33, 59, 82, 94, 94 ] ----------------------------- [ 65 ] [ 23 ] [ 23, 65 ] ----------------------------- [ 45 ] [ 27 ] [ 27, 45 ] ----------------------------- [ 23, 65 ] [ 27, 45 ] [ 23, 27, 45, 65 ] ----------------------------- [ 73 ] [ 25 ] [ 25, 73 ] ----------------------------- [ 39 ] [ 10 ] [ 10, 39 ] ----------------------------- [ 25, 73 ] [ 10, 39 ] [ 10, 25, 39, 73 ] ----------------------------- [ 23, 27, 45, 65 ] [ 10, 25, 39, 73 ] [ 10, 23, 25, 27, 39, 45, 65, 73 ] ----------------------------- [ 13, 14, 25, 33, 59, 82, 94, 94 ] [ 10, 23, 25, 27, 39, 45, 65, 73 ] [ 10, 13, 14, 23, 25, 25, 27, 33, 39, 45, 59, 65, 73, 82, 94, 94 ] ----------------------------- [ 10, 13, 14, 23, 25, 25, 27, 33, 39, 45, 59, 65, 73, 82, 94, 94 ] */
6. Quick sort
function QuickSort(array) { var length = ; if (length <= 1) { return array; } else { var smaller = []; var bigger = []; var base = [array[0]]; for (var i = 1; i < length; i++) { if (array[i] <= base[0]) { (array[i]); } else { (array[i]); } } (((bigger))); ("-----------------------"); return QuickSort(smaller).concat((QuickSort(bigger))); } } var arr = [ 8, 10, 100, 90, 65, 5, 4, 10, 2, 4 ]; var result = QuickSort(arr); (result); /* [ 5, 4, 2, 4, 8, 10, 100, 90, 65, 10 ] ----------------------- [ 4, 2, 4, 5 ] ----------------------- [ 2, 4, 4 ] ----------------------- [ 2, 4 ] ----------------------- [ 10, 10, 100, 90, 65 ] ----------------------- [ 90, 65, 100 ] ----------------------- [ 65, 90 ] ----------------------- [ 2, 4, 4, 5, 8, 10, 10, 65, 90, 100 ] */
The JS implementation methods of the above classic sorting algorithms are all the content I have shared with you. I hope you can give you a reference and I hope you can support me more.