冒泡排序算法其实就是比较相邻的元素。如果第一个比第二个大,就交换他们两个的位置。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
C语言编写的冒泡算法:
#include <stdio.h> #define ARR_LEN 255 /*数组长度上限*/ #define elemType int /*元素类型*/ /* 冒泡排序 */ /* 1. 从当前元素起,向后依次比较每一对相邻元素,若逆序则交换 */ /* 2. 对所有元素均重复以上步骤,直至最后一个元素 */ /* elemType arr[]: 排序目标数组; int len: 元素个数 */ void bubbleSort (elemType arr[], int len) { elemType temp; int i, j; for (i=0; i<len-1; i++) /* 外循环为排序趟数,len个数进行len-1趟 */ for (j=0; j<len-1-i; j++) { /* 内循环为每趟比较的次数,第i趟比较len-i次 */ if (arr[j] > arr[j+1]) { /* 相邻元素比较,若逆序则交换(升序为左大于右,降序反之) */ temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } int main (void) { elemType arr[ARR_LEN] = {3,5,1,-7,4,9,-6,8,10,4}; int len = 10; int i; bubbleSort (arr, len); for (i=0; i<len; i++) printf ("%d\t", arr[i]); putchar ('\n'); return 0; }
Python语言编写的冒泡算法:
def bubble_sort(nums): for i in range(len(nums) - 1): # 这个循环负责设置冒泡排序进行的次数 for j in range(len(nums) - i - 1): # j为列表下标 if nums[j] > nums[j + 1]: nums[j], nums[j + 1] = nums[j + 1], nums[j] return nums print(bubble_sort([45, 32, 8, 33, 12, 22, 19, 97])) # 输出:[8, 12, 19, 22, 32, 33, 45, 97]
C++编写的冒泡算法:
#include <iostream> 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; }
PHP语言编写的冒泡算法:
function bubbleSort($numbers) { $cnt = count($numbers); for ($i = 0; $i < $cnt - 1; $i++) { for ($j = 0; $j < $cnt - $i - 1; $j++) { if ($numbers[$j] > $numbers[$j + 1]) { $temp = $numbers[$j]; $numbers[$j] = $numbers[$j + 1]; $numbers[$j + 1] = $temp; } } } return $numbers; } $num = array(20, 40, 60, 80, 30, 70, 90, 10, 50, 0); var_dump(bubbleSort($num));
其实无论你用了什么语言,你发现,算法的过程都相差无几,那么下面我用两组图片来解释冒泡算法的排序过程:
(图一冒泡算法)
(图二冒泡算法)
怎么样,通过动态图片对冒泡算法的讲解,是不是通俗易懂?
资源下载
下载价格10 积分
此资源购买后10天内可下载。1、如果您遇到版本没有及时更新,或者无法下载(请勿重复支付)等问题,请联系客服QQ:125252828 微信号:dobunkan
2、注意:本站资源永久免费更新,标题带“已汉化”字样的属于汉化过的!!!
3、如果您购买前没有注册账户,请自行保存网盘链接,方便后续下载更新。
4、1积分等于1元。购买单个资源点立即支付即可下载,无需注册会员。
5、本站支持免登陆,点立即支付,支付成功就就可以自动下载文件了(因部分插件和模板没来得及汉化,如果需要汉化版,请先咨询清楚再买!)。
6、如果不会安装的,或者不会使用的以及二次开发需求,费用另外计算,详情请咨询客服!
7、因程序具备可复制传播性质,所以,一经兑换,不退还积分,购买时请提前知晓!
2、注意:本站资源永久免费更新,标题带“已汉化”字样的属于汉化过的!!!
3、如果您购买前没有注册账户,请自行保存网盘链接,方便后续下载更新。
4、1积分等于1元。购买单个资源点立即支付即可下载,无需注册会员。
5、本站支持免登陆,点立即支付,支付成功就就可以自动下载文件了(因部分插件和模板没来得及汉化,如果需要汉化版,请先咨询清楚再买!)。
6、如果不会安装的,或者不会使用的以及二次开发需求,费用另外计算,详情请咨询客服!
7、因程序具备可复制传播性质,所以,一经兑换,不退还积分,购买时请提前知晓!
常见问题
源码、模板插件上传安装提示错误怎么办?
1、本站在打包Wordpress插件或者模板的时候,一般会将官方文档、官方申明、已经其他文件一起打包,因此,大部分插件模板在安装前需要解压缩。
2、强烈推荐服务器使用linux系统,环境推荐 apache2+php+mysql,别给我说你还是你还是使用的windows服务器。。。。
购买后无法下载或者提取码错误怎么办?
请联系客服QQ:125252828 或者微信:dobunkan,由于骚扰信息过多,加好友时请说明原由!
小白建站啥都不会怎么办?
请与客服联系,沟通具体的技术支持。由于搭建环境、调试程序需要花费一些时间,可能会收取一些费用。
怎样催促站长更新?
直接微信或者QQ联系本站客服,提供最新版本号以及软件名称,客服会在第一时间更新,如果超过2-3年未更新的请先联系站长后再确认是否需要下载。
为什么打开链接看不到最新版本?
因为网盘默认是按名称排序,最新版本不一定会排在第一个,请打开链接后点击右上角的“修改日期”,这时候更新列表就会按更新日期排序了。
原文链接:https://www.dobunkan.com/server/278,转载请注明出处。
评论1