冒泡排序Bubble Sort

2023-12-03 06:18
文章标签 冒泡排序 sort bubble

本文主要是介绍冒泡排序Bubble Sort,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

冒泡排序算法的运作如下:(从后往前)
1.
比较相邻的元素。如果第一个比第二个大,就交换他们两个。

  1. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

  2. 针对所有的元素重复以上的步骤,除了最后一个。

  3. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。

冒泡排序总的平均时间复杂度为O(n^2),是一种稳定的排序算法。

JAVA

public class BubbleSort
{public void sort(int[] a){int temp = 0;for (int i = a.length - 1; i > 0; --i){for (int j = 0; j < i; ++j){if (a[j + 1] < a[j]){temp = a[j];a[j] = a[j + 1];a[j + 1] = temp;}}}}
}

这篇关于冒泡排序Bubble Sort的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/448402

相关文章

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

stl的sort和手写快排的运行效率哪个比较高?

STL的sort必然要比你自己写的快排要快,因为你自己手写一个这么复杂的sort,那就太闲了。STL的sort是尽量让复杂度维持在O(N log N)的,因此就有了各种的Hybrid sort algorithm。 题主你提到的先quicksort到一定深度之后就转为heapsort,这种是introsort。 每种STL实现使用的算法各有不同,GNU Standard C++ Lib

冒泡排序——基于Java的实现

简介    冒泡排序(Bubble Sort)是一种简单的排序算法,适用于小规模数据集。其基本思想是通过重复遍历待排序的数组,比较相邻的元素并交换它们的位置,以此将较大的元素逐步“冒泡”到数组的末尾。算法的名称源于其运行过程中,较大的元素像水中的大气泡一样逐渐浮到顶部。  排序过程   for (int i = 0; i < num.length - 1; i++) {

BubbleSort(冒泡排序)

平均时间 复杂度 最差时间 复杂度 最佳时间 复杂度 空间复杂度 O(n^2) O(n^2) O(n) O(1) 稳定 public static void bubbleSort( int[] arr ) {if( arr == null | arr.length < 2 ) {return;}for( int j = arr.length - 1; j > 0;

冒泡排序【BubbleSort】

冒泡排序 假设初始的数组是[5,4,7,2] 以从小到大排序为例: 将第0个元素与第一个元素进行比较, 5 > 4, 所以交换位置, 此时[4,5,7,2] 将第1个元素与第二个元素进行比较, 5 < 7, 所以保持,此时[4,5,7,2] 将第2个元素与第三个元素进行比较, 7 > 2, 所以交换位置, 此时[4,5,2,7] 这样就经过了一轮的冒泡,最后一个元素就是最大的元素了。

C/C++经典排序问题,sort函数使用

目录 1. 前言 2. 正文 2.1 问题 2.2 解决办法 2.2.1 思路 2.2.2 代码实现 2.2.3 测试结果 3. 备注 1. 前言 大家在学习C语言的时候,是不是经常被排序算法折磨的很难那首,其实都是但是在C++中有专门的,排序函数,而且支持自定义排序算法。下面我就带大家看看,sort函数简单的数组排序中的应用。 2. 正文 2.1 问题 题目描述

冒泡排序和鸡尾酒排序(code)

昨天回顾了下冒泡排序和鸡尾酒排序,用面向对象的方式写了一下,并且优化了代码,记录一下~ 一、冒泡排序 # 冒泡排序class BubbleSort(object):def __init__(self, data_list):self.data_list = data_listself.length = len(data_list)# 简单粗暴的排序方式def b_sort(self):d

Hive中order by,sort by,distribute by,cluster by的区别

一:order by order by会对输入做全局排序,因此只有一个Reducer(多个Reducer无法保证全局有序),然而只有一个Reducer,会导致当输入规模较大时,消耗较长的计算时间。关于order by的详细介绍请参考这篇文章:Hive Order by操作。 二:sort by sort by不是全局排序,其在数据进入reducer前完成排序,因此,如果用sort

list.sort实现根据对象的属性值对集合进行排序

list.sort实现根据对象的属性值对集合进行排序,如下所示List<Map<String,Object>> list = new ArrayList<>();Map<String,Object> map1 = new HashMap<>();map1.put("gz_id",1);map1.put("aaa","aaa");Map<String,Object> map2 = new H

HDU 1890 Robotic Sort

题意: 将一列数字排序  排序规则是  每次找到最小值的位置loc  将1~loc所有数字颠倒  然后删掉第一位  直到排好序  排序要求是稳定的 思路: 这题要做的是  寻找区间最小值位置  翻转区间  的操作  因此可以想到用splay 只需要每个节点记录一个small  就可以实现找到最小值位置 翻转区间操作就是将splay的超级头转到最上面使之成为根  再把loc转到根下面