冒泡排序原理:
这一篇百度经验讲得很好,我不多说了
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); } }