冒泡排序——C语言

下面讲一下学习冒泡的一些思路,

冒泡排序是一种简单的排序算法。

它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。

走访数列的工作是重复地进行直到没有再需要交换,

也就是说该数列已经排序完成。

简单来说就是前后比较,如果前面比后面的大,则交换(这是升序)反之,就是降序。

下面看一下代码:这是用C写的简单代码



很多初学C语言的的同学不明白冒泡怎么实现的,主要是不理解中间的循环,首先我们已经知道,冒泡就是前后两两比较。(升序就是1 2 3 4 5这种或者降序则是5 4 3 2 1),那么比较的结果最后一个一定是最大或最小(取决于你是升序还是降序)。

如果你的数组长度为N,因为是两两比较,所以第一趟比较的次数应该是N-1次,第一趟下来最后一个一定是最大或最小,所以第二趟最后一个数则不需要加入比较,比较的数就变成N-1个,比较的次数N-1-1,同理第三次比较的数就变成N-2个,第三次 i 应该为2所以就是(N-i),比较的次数N-1-1-1就是N-1-i,讲到这里大家应该知道为什么 j<10-i-1了,只要懂了这个循环,就懂了冒泡原理。

猜你喜欢

转载自blog.csdn.net/qq_37258792/article/details/80957040