【算法】冒泡排序法

/// <summary>
/// 冒泡法排序
/// </summary>
/// <param name="shuzu"></param>
private static void MySort(int[] shuzu)
{
//比较多少轮
for (int i = 0; i < shuzu.Length - 1; i++)
{
//每一轮比较多少次
for(int j=shuzu.Length-1;j>i;j--)
{
if(shuzu[j]>shuzu[j-1])
{
//交换两个元素的位置
shuzu[j] = shuzu[j - 1] + (shuzu[j - 1] = shuzu[j]) * 0;
}
}
}
}

时间: 2024-10-18 11:59:53

【算法】冒泡排序法的相关文章

php 四种基础的算法 ---- 冒泡排序法

1. 冒泡排序法  *     思路分析:法如其名,就是像冒泡一样,每次从数组当中 冒一个最大的数出来.  *     比如:2,4,1    // 第一次 冒出的泡是4  *                2,1,4   // 第二次 冒出的泡是 2  *                1,2,4   // 最后就变成这样 代码: $arr=array(1,43,54,62,21,66,32,78,36,76,39);  function getpao($arr){    $len=count

算法---冒泡排序法

冒泡排序: 通过对相邻元素的对比,并交换位置,一步一步的把一个元素给挑选出来. 我们可以使用两层嵌套的for循环来实现这个过程,也就是实现冒泡排序: //外层控制轮数 for(var i=0;i<len;i++){ //内层对数组元素进行冒泡选择 for(var j=0;j<len-1-i;j++){ //交互元素 if(arr[j] > arr[j+1]){ var temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } 下面是

算法之旅 | 冒泡排序法

冒泡排序法 HTML5学堂-码匠:本期继续走入算法 -- 冒泡排序法.冒泡排序算法相对简单,容易上手,稳定性也比较高, 算是一种较好理解的算法,也是面试官高频提问的算法之一. Tips:关于"算法"及"排序"的基础知识,在此前"选择排序法"中已详细讲解,可点击文后的相关文章链接查看,在此不再赘述. 冒泡排序法的原理 基本原理 从序列头部开始遍历,两两比较,如果前者比后者大,则交换位置,直到最后将最大的数(本次排序最大的数)交换到无序序列的尾部,从

算法大神之路----排序(冒泡排序法)

冒泡排序法 冒泡排序法又称为交换排序法,是由观察水中冒泡变化构思而成,气泡随着水深压力而改变.气泡在水底时,水压最大,气泡最小,而气泡慢慢浮上水面时,气泡所受压力最小,体积慢慢变大. 冒泡排序比较方式是从第一个元素开始,比较相邻的元素大小,如果大小顺序有误,则对调后进行下一个元素比较.直到所有元素满足关系为止. 冒泡排序法分析 冒泡排序法平均情况下,需要比较(n-1)/2次,时间复杂度为O(n2),最好的情况只需要扫描一次,不用操作,即作n-1次比较,时间复杂度为O(n). 由于冒泡排序为相邻两

算法——蛮力法之选择排序和冒泡排序c++实现

这次实现的是蛮力法中的两个例子,选择排序法和冒泡排序法,使用的编译环境是vs2013,下面对这两个算法做一个简单介绍,然后是两个算法的c++实现代码. 选择排序法比较的范围是整个列表,每次扫描结束找出最小的一个元素一次放在前面的位置:而冒泡排序法每次是将相邻两个元素进行比较,将较大的元素放在后面,这样一次扫描结束后就将当前最大的那个元素放在了列表的后面. 两个排序方法的算法如下: 选择排序法 SelectionSort(A[0....n-1]) //输入:一个可排序数组A[0....n-1],

算法 之 冒泡排序法

不会算法的php程序员不是好程序员~ 冒泡排序法:有n个数,第一次排序将最小的(或者最大的)排到最右边,通过由最左开始到最右边的数两两比较.同理,第二次将n-1个数的最小的(或者最大的)排到倒数第二个位置.以此类推. 关键点:相邻两个数的两两比较 时间复杂度:O(n^2) 上代码: $a = array(3,8,1,5,7,2,6,4); for($j = count($a) ; $j > 1 ; $j--){ for($i = 0 ; $i < $j-1 ; $i++){ if($a[$i]

java算法之冒泡排序法

N个数字要排序完成,总共进行N-1趟排序,每第 i 趟的排序次数为 (N-i) 次,所以 可以用双重循环语句,外层控制循环多少趟,内层控制每一趟的循环次数,即   for(inti=0;i<arr.length-1;i++){         for(intj=0;j<arr.length-1-i;j++){         } } 冒泡排序法 口诀: 外层循环 0到n-1 //控制比较轮数 n 表示元素的个数 内层循环 0到n-i-1 //控制每一轮比较次数 两两比较做交换   冒泡排序的优

关于算法--蛮力法--冒泡排序

冒泡排序 一.步骤 ①比较列表中的相邻元素,如果它们是逆序的则交换位置,进行下一组,多次比较之后,最大的元素就“沉入”到了列表的最后 ②比较下一轮,直到n-1遍之后,列表顺序完毕 二.JavaScript代码实现 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>BubbleSort</tit

1)①排序算法之交换排序[1]冒泡排序法

1 #include "iostream" 2 using namespace std; 3 4 //************冒泡排序法********* 5 int bubble_sort(int n,int array[100]){ 6 bool exchange; 7 int i,j,temp; 8 i=1; 9 do{ 10 exchange=false; 11 for(j=n-1;j>=i;j--){ 12 if(array[j]<array[j-1]){ 13

【算法分析】冒泡排序法

今天突然心血来潮了,想开始看算法了,立此博文,开始对算法系列开始完善,争取每周两文.在分析过程中可能想法较笨,希望各位能够宽容和帮助,如果有更好的意见和建议,可随时留言批评.闲话少数,开始正文. 第一次程序 // 通过一次循环将数组中第一个数安排到数组中比它小的数之前 for (int i = 0; i < test.Length - 1; i++) // 此处不能为test.Length,数组溢出.说明从头到尾交换的最大次数 = 数组元素个数 - 1 { if (test[i] < test