background image
C++学习教程从零开始(八)——C++样例一
排序
给出三张卡片,上面随便写了三个整数。有三个盒子,分别标号为 1、2 和
3。将三张卡片随机放到 1、2、3 这三个盒子中,现在要求排序以使得 1、2、3
三个盒子中装的整数是由小到大的顺序。
给出一最简单的算法:称 1、2、3 盒子中放的卡片上的整数分别为第一、
二、三个数,则先将第一个数和第二个数比较,如果前者大则两个盒子内的卡片
交换;再将第一个和第三个比较,如果前者大则交换,这样就保证第一个数是最
小的。然后将第二个数和第三个数比较,如果前者大则交换,至此排序完成。
第一步:算法中操作的资源是装在盒子中的卡片,为了将此卡片映射成数字,
就注意算法中的卡片和卡片之前有什么不同。算法中区分不同卡片的唯一方法就
是卡片上写的整数,因此在这里就使用一个 long 类型的数字来表示一个卡片。