冒泡排序_C++

简介:

冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。

using namespace std;
template<typename T>
//整数或浮点数皆可使用
void bubble_sort(T arr[], int len)
{
    int i, j;  T temp;
    for (i = 0; i < len - 1; i++)
        for (j = 0; j < len - 1 - i; j++)
        if (arr[j] > arr[j + 1])
        {
            temp = arr[j];
            arr[j] = arr[j + 1];
            arr[j + 1] = temp;
        }
}
int main()
{
    int arr[] = { 61, 17, 29, 22, 34, 60, 72, 21, 50, 1, 62 };
    int len = (int) sizeof(arr) / sizeof(*arr);
    bubble_sort(arr, len);
    for (int i = 0; i < len; i++)
        cout << arr[i] << ' ';
    cout << endl;
    float arrf[] = { 17.5, 19.1, 0.6, 1.9, 10.5, 12.4, 3.8, 19.7, 1.5, 25.4, 28.6, 4.4, 23.8, 5.4 };
    len = (int) sizeof(arrf) / sizeof(*arrf);
    bubble_sort(arrf, len);
    for (int i = 0; i < len; i++)
        cout << arrf[i] << ' ';
 
    return 0;
}
目录
相关文章
|
2月前
|
搜索推荐 C++
C++冒泡排序的实现
C++冒泡排序的实现
|
4月前
|
Java Go C++
Java每日一练(20230427) 螺旋矩阵、LRU缓存机制、解数独
Java每日一练(20230427) 螺旋矩阵、LRU缓存机制、解数独
27 0
Java每日一练(20230427) 螺旋矩阵、LRU缓存机制、解数独
|
5月前
|
算法 搜索推荐 C++
C++017-C++冒泡排序与插入排序
C++017-C++冒泡排序与插入排序
C++017-C++冒泡排序与插入排序
|
9月前
|
搜索推荐 算法 C++
c++排序算法——冒泡排序(不会的一定要看,超级详细)
c++排序算法——冒泡排序(不会的一定要看,超级详细)
556 0
|
10月前
|
搜索推荐 Java C#
转:冒泡排序算法C#、C++和JAVA代码的区别
冒泡排序算法的C#、C++和Java代码的基本结构是相同的,但是由于语言本身的差异,在细节上可能会有所不同。例如,C++代码可能使用指针来操作数组,而C#和Java代码则可能使用索引来访问数组。在语法上,C#和Java代码可能更相似,而C++可能更像C语言。
67 1
转:冒泡排序算法C#、C++和JAVA代码的区别
|
11月前
|
编译器 C语言 C++
C++ 冒泡排序,模板
C++ 冒泡排序,模板
|
12月前
|
C++
C/C++每日一练(20230504) 数据流区间、冒泡排序、Pow(x,n)
C/C++每日一练(20230504) 数据流区间、冒泡排序、Pow(x,n)
59 0
|
算法 C++
冒泡排序极其优化(c/c++版本)
冒泡排序极其优化 算法步骤 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 3.针对所有的元素重复以上的步骤,除了最后一个。 4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
102 0
冒泡排序极其优化(c/c++版本)
|
算法 搜索推荐 C语言
C/C++语言入门——冒泡排序问题
C/C++语言入门——冒泡排序问题
111 0
C/C++语言入门——冒泡排序问题