算法之【冒泡排序法】

冒泡排序法是一种较简单的数值大小排序的算法。主要逻辑是:

对于原始的一组线性数据,从头到尾依次两两比较,如果前者大于后者(或者相反)则交换两个数的位置。这样一遍做下来,数组最末端即是所有数中最大的(或最小的),接下来将除了最后一个数以外剩下的数据再进行一遍刚才的算法。以此类推,每一遍的数据都越来越少,直到最后只剩一个时结束,此时排序完成。

Bubble Sort is a simple algorithm ofsequencing a pile of
data, especially numerical numbers. The main method is:

In terms of a set of linear data, compare every two data
from the beginning to the end, if the former one is greater than
the latter one (or vice versa), swap the two’s position. Now the
biggest (or smallest) of all is at the end of the array, then
operate the remaining data (except the last one) using the same way
as before. By analogy, and each time the data we work on is less
and less, stop until there is only one data. Now all things have
completed.

Void bubble_sort(int a[],int n)

{

    Int
i,j,temp;

    for
(j=0;j

        for(i=0;i

        {

            if(a[i]>a[i+1])

            {

                temp=a[i];

                a[i]=a[i+1];

                a[i+1]=temp;

            }

        }

}

时间: 2024-09-23 08:35:15

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

排序算法-关于冒泡排序法的疑惑

问题描述 关于冒泡排序法的疑惑 冒泡排序法的代码 int n=0; 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; n++; } } } 由于我是菜鸟,我写的是这样的 int n = 0; int temp = 0; for (i

【算法导论】冒泡排序法

冒泡排序法 时间复杂度:O(n*n) 基本思想:从数组最后一个元素开始,依次与前一个元素比较,若比前一个元素小,则与之交换位置,然后再与当前前一个元素比较,直到遇到比它大的元素为止.例如:假设数组为:a[5]={3,4,2,5,1};则运算过程为:首先1与5比较,由于1<5,从而交换位置,数组变为a[5]={3,4,2,1,5};然后1与当前前一个元素2比较,一直重复上述操作,经过一次循环后,数组变为a[5]={1,3,4,2,5};第二次循环从倒数第二个元素开始--,总共循环n-1次就可以得到

C语言冒泡排序法心得_C 语言

记得以前在大学里学习c语言的时候,刚开始是很吃力的. 入门级别的算法中有个叫冒泡排序法,也有称为气泡排序法.那时候刚接触它就对它的名字特别感兴趣,因为觉得很有意思.好了,废话不多说了,我们先一起简单回忆下这个冒泡排序法.  一.打印行和列一般是这样的一个简单代码,输出4行4列*: for(int i = 1,i < 5,i++){ for(int j = 1,j < 5,j++){ printf("*"); } printf("n\"); }  二.打印

用PHP写的一个冒泡排序法的函数简单实例_php实例

前几天遇到的一道关于算法的考题,要求用PHP语言实现对一个数组进行排序,我写了一个采用冒泡排序法的函数,和大家分享一下. <? //冒泡排序法 function bubble_sort($array) { $count = count($array); if($count <= 0) { return false; } for($i=0; $i<$count; $i++) { for($k=$count-1; $k>$i; $k--) { if($array[$k] < $a

用PHP写的一个冒泡排序法的函数简单实例

前几天遇到的一道关于算法的考题,要求用PHP语言实现对一个数组进行排序,我写了一个采用冒泡排序法的函数,和大家分享一下. <? //冒泡排序法 function bubble_sort($array) { $count = count($array); if($count <= 0) { return false; } for($i=0; $i<$count; $i++) { for($k=$count-1; $k>$i; $k--) { if($array[$k] < $a

内部排序算法:冒泡排序

基本思想 将被排序的记录数组R[0..n-1]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡.根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其 向上"飘浮".如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止. 具体过程,如下所示: 初始状态:R[0..n-1]为无序区. 第一趟扫描:从无序区底部向上依次比较相邻的两个气泡的重量,若发现轻者在下.重者 在上,则交换二者的位置,即依次比较(R[n-1], R[n-2]).(R

C#的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序

插入|排序|算法 本文介绍了C#的四种排序算法:冒泡排序.选择排序.插入排序和希尔排序 冒泡排序 using System: namespace BubbleSorter { public class BubbleSorter { public void Sort(int [] list) { int i,j,temp: bool done=false: j=1: while((j<list.Length)&&(!done)) { done=true: for(i=0:i<li

经典算法(1) 冒泡排序的三种实现

冒泡排序是非常容易理解和实现,,以从小到大排序举例: 设数组长度为N. 1.比较相邻 的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换. 2.这样对数组的第0个数据到 N-1个数据进行一次遍历后,最大的一个数据就"沉"到数组第N-1个位置. 3.N=N-1,如果N不为0就 重复前面二步,否则排序完成. 按照定义很容易写出代码: //冒泡排序1 void BubbleSort1(int a[], int n) { int i, j; for (i = 0; i < n;

C语言经典冒泡排序法

C经典冒泡排序法 void BubleSort(int* siSortArray, int siLen) { bool bSwapped = true; do { bSwapped= false; for(int i = 0; i < siLen - 1; i++) { if (siSortArray[i] > siSortArray[i+1]) { int temp = siSortArray[i]; siSortArray[i]= siSortArray[i + 1]; siSortArr