冒泡排序算法(C#、Java、Python、JavaScript、C、C++实现)
一.介绍
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
三.时间复杂度

C#代码实现
using System; namespace BubbleSort
{
class Program
{
static void Main(string[] args)
{
int[] arr = { , , , , };
foreach (var item in GetBubbleSort(arr))
{
Console.WriteLine(item);
} Console.ReadLine();
} static int[] GetBubbleSort(int[] arr)
{
int count = ;
int temp = ;
for (int i = ; i < arr.Length - ; i++)
{
for (int j = i + ; j < arr.Length; j++)
{
if (arr[j] < arr[i])
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
count++;
}
count++;
} Console.WriteLine(count);
return arr;
}
}
}
Java代码实现
package cn.lb.test; public class BubbleSort {
public static void main(String[] args){
int[] arr={2,5,6,4,3};
for (int item :getBubbleSort(arr))
{
System.out.println(item);
}
} public static int[] getBubbleSort(int[] arr)
{
int count=0;
int temp=0;
for (int i = 0; i <arr.length-1 ; i++) {
for (int j =0; j < arr.length-1-i; j++) {
if (arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
count++;
}
count++;
}
return arr;
}
}
Python代码实现
def getBubbleSort(arr):
for i in range(len(arr)-1,0,-1):
for j in range(0,i):
if arr[j]>arr[j+1]:
arr[j],arr[j+1]=arr[j+1],arr[j]
return arr
arr=[2,4,6,3,5]
arr=getBubbleSort(arr)
print(arr)
JavaScript代码实现
let getBubbleSort=(arr)=>{
let temp=0;
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr.length-i-1; j++) {
if (arr[j]<arr[j+1]) {
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return arr;
}
let arr=[2,5,6,4,3];
arr=getBubbleSort(arr);
arr.forEach(num=>{
console.log(num);
});
C语言实现
#include <stdio.h>
int* getBubbleSort(int arr[], int len)
{
int i, j, temp;
for (i = ; i < len - ; i++)
{
for (j = ; j < len - i - ; j++)
{
if (arr[j] > arr[j + ])
{
temp = arr[j];
arr[j] = arr[j + ];
arr[j + ] = temp;
}
}
}
return arr;
} int main() {
int arr[] = { ,,,, };
int len = (int)sizeof(arr) / sizeof(*arr);
int* p = getBubbleSort(arr, len);
int i;
for (i = ; i < len; i++)
{
printf("%d", *(p + i));
}
}
C++实现
#include <iostream>
using namespace std; int* getBubbleSort(int arr[], int len)
{
int i, j, temp;
for (i = ; i < len - ; i++)
{
for (j = ; j < len - i - ; j++)
{
if (arr[j] > arr[j + ])
{
temp = arr[j];
arr[j] = arr[j + ];
arr[j + ] = temp;
}
}
}
return arr;
} int main() {
int arr[] = { ,,,, };
int len = (int)sizeof(arr) / sizeof(*arr);
int* p = getBubbleSort(arr, len);
int i;
for (i = ; i < len; i++)
{
cout<<("%d", *(p + i))<<endl;
}
}
冒泡排序算法(C#、Java、Python、JavaScript、C、C++实现)的更多相关文章
- 编程开发(C/C++&Java&Python&JavaScript&Go&PHP&Ruby&Perl&R&Erlang)
使用Docker快速部署主流编程语言的开发.编译环境及其常用框架,包括C.C++.Java.Python.JavaScript.Go.PHP.Ruby.Perl.R.Erlang等. 在今后采用编程语 ...
- 冒泡排序算法(Java)
冒泡排序即每次遍历.相邻数字间进行比較,前者大于后者进行交换,不断将最大值后移,直至沉至最后位置:算法关键要点在于确定每次循环的边界. 后面两种算法则是对冒泡排序一定程度上的改良,但相对于其它排 ...
- 简单的冒泡排序算法(java)
package lianxi; public class BubbleSort { public static void main(String[] args) { int[] array = {12 ...
- Java调用Javascript、Python算法总结
最近项目中经常需要将Javascript或者Python中的算法发布为服务,而发布Tomcat服务则需要在Java中调用这些算法,因此就不免要进行跨语言调用,即在Java程序中调用这些算法. 不管是调 ...
- [转]Java调用Javascript、Python算法总结
最近项目中经常需要将Javascript或者Python中的算法发布为服务,而发布Tomcat服务则需要在Java中调用这些算法,因此就不免要进行跨语言调用,即在Java程序中调用这些算法. 不管是调 ...
- 冒泡排序算法的C++,Java和Python实现和冒泡排序算法三种语言效率的比较
冒泡排序原理: 这一篇百度经验讲得很好,我不多说了 https://jingyan.baidu.com/article/6525d4b13f920bac7d2e9484.html 他讲的是C语言,没有 ...
- 30个深度学习库:按Python、C++、Java、JavaScript、R等10种语言分类
30个深度学习库:按Python.C++.Java.JavaScript.R等10种语言分类 包括 Python.C++.Java.JavaScript.R.Haskell等在内的一系列编程语言的深度 ...
- indexOf原理,Java,javascript,python实现
简介 最近做项目的时候,发现无论是前端还是后端,indexOf出现的概率都非常频繁,今天我们来看下他的实现原理吧! indexOf的含义:给定一个字符串去匹配另一个字符串的下标,如果匹配到,返回下 ...
- java:高速排序算法与冒泡排序算法
Java:高速排序算法与冒泡算法 首先看下,冒泡排序算法与高速排序算法的效率: 例如以下的是main方法: /** * * @Description: * @author:cuiyaon ...
随机推荐
- 14 微服务电商【黑马乐优商城】:day01-springboot(Thymeleaf快速入门)
本项目的笔记和资料的Download,请点击这一句话自行获取. day01-springboot(理论篇) :day01-springboot(实践篇) :day01-springboot(Thyme ...
- Codeforces Round #600 (Div. 2)E F
题:https://codeforces.com/contest/1253/problem/E 题意:给定n个信号源,俩个参数x和s,x代表这个信号源的位置,s代表这个信号源的波及长度,即这个信号源可 ...
- Android 5.0 5.1 webview 闪退问题
自定义webview /** * 处理Android 5.0 5.1 webview 闪退 */ class MyWebView : WebView { companion object{ priva ...
- 5G时代将至,哪些改变会随之而来?
近年来,运营商不断被唱衰.关键原因就在于运营商的各项业务,在互联网的冲击下已经愈发"萎缩".尤其是短信和语音通话,它们的价值在不断被降低.简而言之,运营商似乎成为了纯粹的" ...
- Opencv笔记(八)——图像上的算数运算
学习目标: 学习图像上的算术运算,加法,减法,位运算等. 学习函数cv2.add(),cv2.addWeighted() 等. 一.图像的加法 你可以使用函数 cv2.add() 将两幅图像进行加法运 ...
- [SDOI2010]魔法猪学院(k短路)
A*板子题.我的code只能在luogu上过,bzoj上RE/MLE不清楚为啥. 蒟蒻到AFO前2个月不到的时间才学A*,A*其实就是bfs过程中进行剪支删除没必要的搜索.然后其实上这样剪支即可:如果 ...
- EXAM-2018-08-21
EXAM-2018-08-21 自己真的是菜的恐怖 D:Fence Building 欧拉公式:V-E+F=2 在平面中:V为顶点个数,E为边数,F为区域数 在简单几何体中:V为顶点个数,E为边数,F ...
- Centos内核更新
内核更新操作后面补上.暂时记录删除多余内核操作 删除卸载多余内核 1.系统启动时,选择需要保留的内核进入系统,通过uname -a命令查看当前内核版本,以防误删 2. 使用rpm -qa | grep ...
- WMS备货单保存后自动新增选项不勾选
- CSS样式表-------第二章:选择器
二 .选择器 内嵌.外部样式表的一般语法: 选择器 { 样式=值: 样式=值: 样式=值: ...... } 以下面html为例,了解区分一下各种样式的选择器 <head> <met ...