学习笔记:冒泡排序的C++、JavaScript、Java实现

来源:互联网 发布:在线教学系统源码 编辑:程序博客网 时间:2024/06/15 16:17

冒泡排序的C++、JavaScript、Java实现

实现原理:以C++实现为例,排序过程使用嵌套的for循环完成的,对10个元素的数组,一个进行9轮比较,每轮要进行 len-i 次比较,以决出一个最大值。用下面的例子来说,共比较9轮,第一轮选一个最大的数放在最后,第二轮从剩下的数字中选一个最大的放在倒数第二…,直到最后一轮。
总结:冒泡排序比较容易实现,但是不论情况好坏,都要进行所有轮的比较,运行速度较慢。

(1)C++实现

void bubbleSort(int array[], int len) {    int temp;    for (int i = 1; i < len; i++) {  //共比较 len-1 轮        for (int j = 0; j < len - i; j++) {  //每一轮比较第一个到第len-i个数            if (array[j] > array[j + 1]) {  //比较第j和j+1个数,大的放在后面                temp = array[j];                array[j] = array[j + 1];                array[j + 1] = temp;            }        }    }}int main() {    int a[]={45,32,8,66,20,13,40,15,21,35};    int len = sizeof(a)/ sizeof(int);    bubbleSort(a,len);    for(int i = 0; i < len; i++){        cout<<a[i]<<" "<<endl;    }}//输出  8 13 15 20 21 32 35 40 45 66

(2)JavaScript实现

function bubbleSort(array) {    var temp;    for (var i = 1; i < array.length; i++) {        for (var j = 0; j < array.length - i; j++) {            if (array[j] > array[j + 1]) {                temp = array[j];                array[j] = array[j + 1];                array[j + 1] = temp;            }        }    }}var a = [45,32,8,66,20,13,40,15,21,35];bubbleSort(a);console.log(a.join(" "));//输出  8 13 15 20 21 32 35 40 45 66

(3)Java实现

public class Test {    public static void main(String[] args) {        int[] a = { 45, 32, 8, 66, 20, 13, 40, 15, 21, 35 };        bubbleSort(a);        for (int i = 0; i < a.length; i++) {            System.out.print(a[i] + " ");        }    }    private static void bubbleSort(int[] array) {        int temp;        for (int i = 1; i < array.length; i++) {            for (int j = 0; j < array.length - i; j++) {                if (array[j] > array[j + 1]) {                    temp = array[j];                    array[j] = array[j + 1];                    array[j + 1] = temp;                }            }        }    }}//输出  8 13 15 20 21 32 35 40 45 66
0 0