说起冒泡排序相信学习过C语言的同学都比较的熟悉,但是如何利用指针来巧妙地实现冒泡排序呢,下面我来为大家分享一下个人的见解,如何不好希望大家多多批评指教。
实现代码如下:
for(i=0;i<10;i++)
{
p=&stu[0];
q=&stu[0];
for(j=0;j<10-i-1;j++)
{
++q;
if(*p<*q)
{
t=*p;
*p=*q;
*q=t;
}
p++;
}
第一个for循环决定排序走了几趟,而第二个个排序决定了比较几次大小。在第一个for循环内,第二个for循环之外p=&stu[0];
q=&stu[0];作用是是指针地址在每趟排序开始时总是指向数组的首地址,++q是为了使其指向p指针指向的下一个位置方便比较。