美文网首页C Language
排序方法之冒泡排序法

排序方法之冒泡排序法

作者: 水刃一木__九日 | 来源:发表于2017-04-17 17:25 被阅读0次

排序方法是C语言中一种重要的、基本的算法。一共有两种规律:升序和降序。升序是将数据从小到大排列,而降序是将数据从大到小排列。今天,我们来讲解排序方法中的冒泡排序法。我们知道,当烧开水时,烧开前气泡由大变小,烧开后,气泡由小变大。而我们的冒泡排序法也与之类似。


比如,有4个数字:{10、6、3、9},要求升序排列。

##第一轮

####第一步,将{10、6、3、9}中10与6进行比较,10>6,将10与6互换,得到{6、10、3、9}。10这个比6大的数向后移相当于气泡上升过程中变大。

####第二步,将{6、10、3、9}中10与3进行比较,10>3,将10与3互换,得到{6、3、10、9}。

####第三步,将{6、3、10、9}中的10与9进行比较,10>9,将10与9互换,得到{6、3、9、10}。

##第一轮结束,从{10、6、3、9}中找出最大值10。10在最后位置,不再变动。

##第二轮

####第一步,将{6、3、9}中的6与3比较,6>3,将6与3互换,得到{3、6、9}。

####第二步,将{6、3、9}中的6与9比较,6<9,将6与9不互换,得到{3、6、9}。

##第二轮结束,从{6、3、9}中找出最大值9。9在最后位置,不再变动。

##第三轮

####第一步,将{3、6}中3与6比较,3<6,将3与6不互换,得到{3、6}。

##第三轮结束,从{3、6}中找出最大值6。6在最后位置,不再变动。

从上面可以知道,4个数需要比较3轮,每轮次数递减。类比可知,n个数需要比较(n-1)轮,每轮次数递减。降序排序与上述过程相似,这里就不过多地赘述了。


下面用一个程序来说明。

##程序:

#include

int main()

{

int a[4];

int i,j,t;

printf("请输入4个整数:\n");

for (i=0;i<4;i++)

{

scanf("%d",&a[i]);

}

for (i=0;i<3;i++)

{

for (j=0;j<3;j++)

{

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

{

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

}

printf("从小到大排列为:\n");

for(i=0;i<4;i++)

{

printf("%d ",a[i]);

}

printf("\n");

return 0;

}

##结果:

升序排序

冒泡排序法是排序法中的一个重要的分支,一定要重点掌握。

相关文章

  • 经典排序算法总结

    经典排序算法集锦 冒泡法 排序算法入门之冒泡排序 排序算法入门之冒泡排序优化

  • 交换排序法

    交换排序法是指借助于数据元素之间的相互交换进行排序的一种方法。冒泡排序与快速排序法都属于交换排序法。 冒泡排序法的...

  • C语言中排序方法的使用

    C语言中排序方法 学习目的 今天我们学习了三种排序方法:冒泡排序法、选择排序法、插入排序法。 相关技术,及其实用 ...

  • JavaScript算法入门--排序--冒泡排序

    一般排序的常用方法有:冒泡法、插入法、选择法、快速排序、归并排序、桶排序、希尔排序、堆排序、基数排序、外部排序等。...

  • JavaScript算法入门--排序--插入排序

    一般排序的常用方法有:冒泡法、插入法、选择法、快速排序、归并排序、桶排序、希尔排序、堆排序、基数排序、外部排序等。...

  • PHP学习之排序

    排序分为内部排序和外部排序内部排序:所有数据都加载到内存当中。主要方法有冒泡法、选择排序法、插入式排序法和快速排序...

  • 各种排序方法

    冒泡排序法 选择排序法 链表排序法 qsort()函数排序法

  • 排序方法之选择排序法

    上次,我们介绍了排序方法中的冒泡排序法,今天我们来介绍另一个比较重要的排序方法---选择排序法。 选择排序法,顾名...

  • 冒泡排序法C

    xcode冒泡排序法 下载冒泡排序。

  • 算法-冒泡排序

    算 法:冒泡排序算法时间复杂度: 冒泡排序算法概述 冒泡排序伪代码 冒泡排序实现 冒泡排序算法概述 冒泡排...

网友评论

    本文标题:排序方法之冒泡排序法

    本文链接:https://www.haomeiwen.com/subject/vsntzttx.html