常见算法之冒泡排序

冒泡排序由于其简单,通常是我们学习各类编程语言首先选择学习的一个排序算法。

Java版:

 1 public class BubbleSort {
 2     public static void main(String[] args) {
 3         // 创建一个数组,这个数组元素是乱序的
 4         int[] array = { 666, 8, 28, 66, 86, 68 };
 5         // 创建冒泡排序类的对象
 6         BubbleSort sorter = new BubbleSort();
 7         // 调用排序方法将数组排序
 8         sorter.sort(array);
 9     }
10     /**
11      * 冒泡排序
12      * 要排序的数组
13      */
14     public void sort(int[] array) {
15         for (int i = 1; i < array.length; i++) {
16             // 比较相邻两个元素,较大的数往后冒泡
17             for (int j = 0; j < array.length - i; j++) {
18                 if (array[j] > array[j + 1]) {
19                     int temp = array[j];// 把第一个元素值保持到临时变量中
20                     array[j] = array[j + 1];// 把第二个元素值保存到第一个元素单元中
21                     array[j + 1] = temp;// 把临时变量也就是第一个元素原值保持到第二个元素中
22                 }
23             }
24         }
25         showArray(array);// 输出冒泡排序后的数组元素
26     }
27     // 显示数组所有元素
28     public void showArray(int[] array) {
29         for (int i : array) {// foreach格式遍历数组
30             System.out.print(" >" + i);// 输出每个数组元素值
31         }
32         System.out.println();
33     }
34

C++版:

 1 #include<iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     int Arr[] = { 1, 4, 5, 3, 6, 2, 9, 7, 8 };
 7     cout<<"排序前:";
 8     for(int i = 0; i < sizeof(Arr)/4; i++)
 9         cout << Arr[i] << " ";
10     cout << endl;
11     for(int i = 1; i < sizeof(Arr)/4; i++)
12         for(int j = 0; j<sizeof(Arr)/4 - i; j++)
13         {
14             if(Arr[j] > Arr[j+1])
15             {
16                 int temp = Arr[j];
17                 Arr[j] = Arr[j + 1];
18                 Arr[j + 1] = temp;
19             }
20         }
21     cout<<"排序后:";
22     for(int i = 0; i < sizeof(Arr)/4; i++)
23         cout << Arr[i] << " ";
24     getchar();
25     getchar();
26     return 0;
27 }

作者:耑新新,发布于  博客园

转载请注明出处,欢迎邮件交流:zhuanxinxin@aliyun.com

原文地址:https://www.cnblogs.com/Arthurian/p/7577169.html