很多朋友是以谭浩强老师编的《c 语言教程》作为学习c 语言的入门教程的
书中涉及排序问题一般都以“冒泡法”和“选择法”实现
为了扩大视野,增加学习编程的兴趣,我参阅了有关书籍,整理了几种排序法,写出来同大家共勉
让我们先定义一个整型数组 a[n ],下面用五种方法对其从小到大排序
(1)“冒泡法” 冒泡法大家都较熟悉
其原理为从 a[0]开始,依次将其和后面的元素比较,若 a[0]>a,则交换它们,一直比较到 a[n ]
同理对 a[1],a[2],
a[n -1]处理,即完成排序
下面列出其代码: C/C++ code void bubble(int *a,int n) /*定义两个参数:数组首地址与数组大小*/ { int i,j,temp; for(i=0;ia[j],则使 k =j
最后看看 k =i 是否还成立,不成立则交换 a[k ],a,这样就比冒泡法省下许多无用的交换,提高了效率
void choise(int *a,int n) { int i,j,k,temp; for(i=0;i