Sign in
or
Register
Courses
Textbook
Compiler
Contests
Topics
Courses
C++。 數據存儲和處理
二次排序
Module:
二次排序
Problem
1
/7
冒泡排序
Theory
Click to read/hide
二次排序
排序
-
按给定顺序重新排列数组(列表)的元素。
冒泡法(bubble sort),或简单交换排序。
该类型的不朽经典。操作原理很简单:我们从头到尾遍历数组,同时交换未排序的相邻元素。由于第一个传到最后一个地方,“弹出”最大元素。现在我们再次绕过数组的未排序部分(从第一个元素到倒数第二个元素)并沿途更改未排序的邻居。第二大元素将在倒数第二个位置。继续本着同样的精神,我们将绕过数组中不断减少的未排序部分,将找到的最大值推到最后。
来源
该算法的算法实现
<前> 循环 J=1 到 N-1 第 1 步 F=0 循环 I=1 到 N-J-1 第 1 步 如果 A[I] > A[I+1] 然后 交换 A[I],A[I+1] F=1 下一个 IF F=0 THEN EXIT THE LOOP // 如果在传递过程中没有交换, // 这意味着所有元素 // 排列顺序 下一个J 该算法的复杂度:
\(\displaystyle O(n^{2})\)
。
其他有用信息:
维基百科文章
。
Problem
要求使用“冒泡”方式对数组进行非降序排序。
输入
第一行包含一个不超过 1000 的自然数
N
–数组大小。第二行包含
N
个数字 –数组元素(整数不超过 1000 的模数)。
输出
输出结果数组。
例子
<头>
<日>#日>
输入
输出
东西> <正文>
1
5
5 4 3 2 1
1 2 3 4 5
表>
Запрещенные операторы:
sort
1000
ms
256 Mb
Rules for program design and list of errors in automatic problem checking
Teacher commentary