冒泡排序法可以形象地描述为:使较小的值像空气泡一样逐渐“上浮”到数组的顶部,而大的值逐渐“下沉”到数组的底部。这种排序技术要排好几轮,每一轮都要比较连续的数组素对。如果某对数值是按升序排列的,那就保持原样。如果按降序排列,就交换它们的值。
新学的C++,以前学VB时,也用到了冒泡排序,这次再次学冒泡排序时,相对于之前,简单了很多。下面分享一下我对这段代码的理解。
// 例4.3.1.cpp : 定义控制台应用程序的入口点。 //本程序从小到大排列10个随机整数 #include "stdafx.h" #include<iostream> int _tmain(int argc, _TCHAR* argv[]) { int vn[10]; std::cout<<"原整数序列为:";//由用户输入10个随机整数 for(int n=0;n<10;n++) { std::cin>>vn[n];//将随机数给数组赋值 } for (int i=1;i<10;i++)//确定本循环要找第i个最大的数 { int temp; for(int p=0;p<10-i;p++) { if (vn[p]>vn[p+1])//如果数组中前一个数大于后一个数,则交换位置 { temp=vn[p]; vn[p]=vn[p+1]; vn[p+1]=temp; } } for(int x=0;x<10;x++)std::cout<<vn[x]<<‘ ‘;//第i轮循环输出结果是将第i个大的数排列在倒数第i位。 std::cout<<std::endl; } return 0; }
冒泡排序充分运用两值交换的方法,不断将相邻两数进行比较,并按照排序要求交换位置,直至将最大的数交换到最后(升序)或将最小的数交换到最后(降序)。