今天看的一个视频讲的是冒泡排序,以前老师也讲过,反正讲了自己也没听懂,迷迷糊糊的听了,代码也算看的点懂,今天看了这个视频,才知道就是两个循环可以解决的冒泡排序,一个是外循环,一个是内循环,弄了半天就就是懂非懂,排序这些东西,有很多,这种是最简单的,也是最费时间的,比如:有二分查找,选择排序,插入排序,都不怎么会,看了还得深入学习,下面
我写的一个冒泡排序
/*
2014年5月29日16:54:21
冒泡排序
*/
#include<stdio.h>
void sort(int * a ,int len) //a保存 数组a的首地址
{
int i,j,t;
for(i=0;i<len-1;++i) //len=5
{
for (j=0;j<len-1-i;++j) // 4
{
if(a[j] < a[j+1]) // < 号表示降序 *** > 表示升序
{
t = a[j]; //这里操作a【1】和在主函数操作a【1】是一样的因为是这个函数的a保存的是主函数a数组的第一个元素的地址
a[j] = a[j+1];
a[j+1] = t;
}
}
}
}
int main(void)
{
int a[6]={1,6,8,7,2,5 };//定义一个数组
int i = 0;
sort(a,6);
for (i=0;i<6;++i) //输出这个数组的每一个元素 这时候已经是排好顺序
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
/*
在vc 6.0 中输出是:
-----------------
8 7 6 5 2 1
Press any key to continue
-----------------
*/
我写的一个冒泡排序