您的位置 首页 > 科技

冒泡排序法讲解 用自然语言描述冒泡排序思想?

冒泡排序法讲解

冒泡排序法讲解 用自然语言描述冒泡排序思想?

用自然语言描述冒泡排序思想?

用自然语言描述冒泡排序思想?

1.冒泡排序是交换排序中一种简单的排序方法。

它的基本思想是对所有相邻记录的关键字值进行比效,如果是逆顺(a[j]gta[j 1]),则将其交换,最终达到有序化

其处理过程为:

(1)将整个待排序的记录序列划分成有序区和无序区,初始状态有序区为空,无序区包括所有待排序的记录。

(2)对无序区从前向后依次将相邻记录的关键字进行比较,若逆序将其交换,从而使得关键字值小的记录向上”飘浮”(左移),关键字值大的记录好像石块,向下“堕落”(右移)。 每经过一趟冒泡排序,都使无序区中关键字值最大的记录进入有序区,对于由n个记录组成的记录序列,最多经过n-1趟冒泡排序,就可以将这n个记录重新按关键字顺序排列。

C语言中什么叫气泡法排序?

C语言冒泡排序(起泡法)

冒泡法排序是C语言中较简单的排序算法。

定义:它重复地走访过要排序的元素列,依次比较两个相邻的元素,让较大的元素逐渐往后移动(交换两个元素的值),直到数组的末尾。如此反复,直到没有可以交换的元素,(即从小到大排序好)。

思路:

有n个数,每轮替换一个数,假设最大的数在第一个,则一共需要替换n-1轮;此时最大数已经在最下面,

所以第二轮替换少一轮,以此类推;

在函数和数组中

/*对输入的数进行从小到大排序*/

#include ltstdio.hgt

void Bubble(int foam[])//冒泡排序

int main()

{

\tint froth[10]

\tint i

\tfor(i=0ilt=9i )//动态赋值

\t{

\t\tscanf(#34\%d#34,ampfroth[i])

\t}

\tBubble(froth)//数组址传递

return 0

}

void Bubble(int foam[])

{

\tint t

\tint j,k

\tfor(j=0jlt9j )//进行9轮循环

\t{

\t\tfor(k=0klt9-jk )//减去循环的轮数

\t\t{

\t\tif(foam[k]gtfoam[k 1])//假设前面的数大于后面的数,如果真,则替换;

\t\t\t{

\t\t\t\tt = foam[k]

\t\t\t\tfoam[k] = foam[k 1]

\t\t\t\tfoam[k 1] = t

\t\t\t}

\t\t}

\t}

\tputchar(#39\

#39)

\tfor(j=0jlt=9j )//输出替换好的值

\t{

\t\tprintf(#34=#34,foam[j])

\t}

}

在数组中

#include ltstdio.hgt

void main()

{

\tint a[8]//定义数组

\tint i,k

\tint t//替换变量

\tprintf(#34输入8个整数:#34)

\tfor(i=0ilt=7i )//数组赋值

\t{

\t\tscanf(#34\%d#34,ampa[i])

\t}

\tfor(k=0klt7k )

\t{

\t\tfor(i=0ilt7-ki )

\t\t{

\t\t\tif(a[i]gta[i 1])

\t\t\t{

\t\t\t\tt = a[i]

\t\t\t\ta[i] = a[i 1]

\t\t\t\ta[i 1] = t

\t\t\t}

\t\t}

\t}

\tfor(i=0ilt=7i )//输出

\t{

\t\tprintf(#34\%d\

#34,a[i])

\t}

}

相关文章