冒泡排序算法的C++和Java实现

冒泡排序原理:

这一篇百度经验讲得很好,我不多说了

https://jingyan.baidu.com/article/6525d4b13f920bac7d2e9484.html

他讲的是C语言,没有关系,冒泡原理都是一样的

C++实现

/**
* @author cjy
* @Date 2018/6/19 15:00.
*/
#include <iostream>

using namespace std;

void print(int a[],int n)
{
    for (int k = 0; k < n; k++)
    {
        cout << a[k] << endl;
    }
}

int main()
{
    int a[8] = {5,9,7,6,1,8,13,4};
    //获取数组的长度
    int n = sizeof(a) / sizeof(a[0]);
    //第一个元素只需要和n-1个元素进行比较
    //第二个元素只需要和n-2个元素进行比较
    //以此类推
    for (int i = 0; i < n -1; i++)
    {
        //第一个元素只需要和n-1个元素进行比较
        //第二个元素只需要和n-2个元素进行比较
        //以此类推
        for (int j = 0; j < n -1; j++)
        {
            //只要前面的元素大于后面的元素,立即交换
            if (a[j] > a[j + 1]) 
            {
                int temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
            }
            
        }

        cout << ""<<i+1<<"步骤" << endl;
        print(a, n);

    }
    cout << "最终结果" << endl;
    print(a, n);
    system("pause");
    return 0;
}

Java实现

package com.xgt.util;

/**
 * @author cjy
 * @Date 2018/6/19 15:25.
 */
public class BubbleSort {
    static void print(int[] arr,int n)
    {
        for(int k=0;k<arr.length;k++){
            System.out.println(arr[k]);
        }
    }
    public static void main(String[] args) {
        int a[] = {5,9,7,6,1,8,13,4};
        int n = a.length;
        for(int i=0;i<n-1;i++){
            for(int j=0;j<n-1;j++){
                if(a[j]>a[j+1]){
                    int temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                }
            }
            System.out.println("第"+(i+1)+"个步骤");
            print(a,n);
        }
        System.out.println("最终结果");
        print(a,n);
    }
}

猜你喜欢

转载自www.cnblogs.com/Java-Starter/p/9198912.html