现在的位置: 首页 > 操作系统 > 正文

冒泡法排序

2020年02月13日 操作系统 ⁄ 共 877字 ⁄ 字号 评论关闭

最近在面试应届生,出了几道简单的面试题,冒泡法排序就是其中之一。很多人觉得冒泡简单,就疏忽了。网上搜了下,也流传着很多错误的写法。自己手写了一遍,也算是复习吧。

C++代码如下:

#include "stdafx.h"

/************************************************************************//* 冒泡排序 *//************************************************************************/void BubbleSort(int data[], int n){ for (int i=0; i<n-1; i++) { bool exchange = false; for (int j=0; j<n-i-1; j++) { if (data[j] > data[j+1]) { int tmp = data[j]; data[j] = data[j+1]; data[j+1] = tmp; exchange = true; } } if (!exchange) break; }}

int _tmain(int argc, _TCHAR* argv[]){ int data[10]={-100, 79, -3, 0, 49, 21, 8, 200, 12341, 0}; BubbleSort(data, 10);

return 0;}

注意两个问题:

  1. 冒泡法排序比较的是相邻的两个元素,而不是头元素和之后的几个元素相比,网上一些写法错误于此,归根结底就是自己没有实际去手写一边冒泡排序,想当然了;

  2. 注意循环结束的条件,并不是一定要一直比较直到程序结束,而是当一次比较过程中没有交换操作的时候,程序即可终止。

本文永久更新链接地址:http://www.xuebuyuan.com/Linux/2016-12/137992.htm

以上就上有关冒泡法排序的相关介绍,要了解更多冒泡排序,冒泡法排序,编程,Linux编程,Linux Shell,Android,Android教程,JAVA,C语言,Python,HTML5内容请登录学步园。

抱歉!评论已关闭.