Julia语言矩阵运算入门
1035
2025-03-31
和上篇博文:简单的成绩录入系统程序及分析以及思考一样,这篇也是一年前做的笔记,真恨自己当时为什么就不知道使用博客记笔记,有了博客,就可以看到自己学习的点滴和进步,记笔记也方便,还能分享知识。
本文档致力于练习冒泡排序法,用c语言的各种语法,例如数组,指针等知识进行编程,达到既对算法的一次实践,又对语法的一次回顾,争取熟悉c编程语言,不断应用c语言,实现最后的推陈出新。
冒泡排序法是一种重要的排序思想,本次练习要实现玩转冒泡排序法,同样,本程序中的排序算法均在一个定义的函数中实现,不断改变的是数组与指针的用法,但指针仅限于列指针。下面是第一个源程序:
#include
int main()
{
void bubble(int *p,int n); //冒泡排序法函数声明
int array[10],i;
printf("Please input 10 interger numble:\n");
for(i=0;i<=9;i++)
scanf("%d",&array[i]); //输入十个整数
bubble(array,10); //冒泡排序函数调用
printf("The order of the numble concerned is:\n");
for(i=0;i<=9;i++) //输出排序后的数
printf("%d ",array[i]);
printf("\n");
return 0;
}
void bubble(int *p,int n) //冒泡排序函数定义
{
int i,j,temp;
for(i=0;i<=n-2;i++)
for(j=0;j
if(p[j]>p[j+1])
{
temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
注意,bubble函数中的指针p,使用时用了p[]形式,这样做是为了与数组类似,便于理解。下面将其改成等效形式:
void bubble(int *p,int n) //冒泡排序函数定义
{
int i,j,temp;
for(i=0;i<=n-2;i++)
for(j=0;j
if(*(p+j)>*(p+j+1))
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
主函数中使用数组,定义函数bubble的形参使用指针时一种常用的形式,使用指针进行编程是c语言的精髓,是一种高效的形式。
下面的源程序对上述程序进行改进,将主函数中的数组也用指针进行处理:
#include
int main()
{
void bubble(int *p,int n); //冒泡排序法函数声明
int array[10],i;
int *pp=array,*pp_end=pp+9;
printf("Please input 10 interger numble:\n");
for(;pp<=pp_end;pp++)
scanf("%d",pp); //输入十个整数
pp=array;
bubble(pp,10); //冒泡排序函数调用
printf("The order of the numble concerned is:\n");
pp=array;
for(;pp<=pp_end;pp++) //输出排序后的数
printf("%d ",*pp);
printf("\n");
return 0;
}
void bubble(int *p,int n) //冒泡排序函数定义
{
int i,j,temp;
for(i=0;i<=n-2;i++)
for(j=0;j
if(*(p+j)>*(p+j+1))
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
最后,介绍下冒泡程序的编程思想:
冒泡排序的思想就是依次对两个顺序的数进行比较,小的浮上来,大的沉下去。假如对N个数进行冒泡法排序,首先将N个数放入数组当中array[N],让后进行N-1次大的循环,即for(i=0;i
接着,在大循环(i=0)下进行小循环,例如第一次循环是array[0]与array[1]比较,如果array[0]大,则交换顺序,然后array[1]与array[2]比较,大的沉下去,一直到array[N-2]与array[N-1]比较,大的沉下去,总共比较了N-1-0次,经历这次比较,最大的数沉到了最下面。
之后,用同样的方法对array[0]到array[N-2]进行比较,次大的数沉到了array[N-2]的地址中,总共经历了N-1-1次比较。
当i=N-2时候,需要比较的是array[0]与array[1]即array[N-1-(N-2)],大的沉入array[1]中,则array[0]中为最小的数,这样就实现了冒泡排序。
总之,小循环的次数为N-1-i。
数据结构
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。