S1E36快速排序 有句代码有疑问
#include<stdio.h>/*快速排序*/
void quick_sort(int array[],int left,int right);
void quick_sort(int array[],int left,int right)
{
这一句 quick_sort(array, 0, length-1);中的array是什么意思啊 它不是数组名吗 本帖最后由 行客 于 2019-2-18 08:13 编辑
这里,是将数组作为参数进行了传递。也就是,数组用作函数参数。
C语言标准规定,**** Hidden Message ***** 代码如下!!!
#include<stdio.h>
/*快速排序*/
void quick_sort(int array[],int left,int right);
void quick_sort(int array[],int left,int right)
{
int i = left ,j = right;
int temp;
int pivot;
pivot = array[(left + right) /2];
while (i <= j)
{
//从左到右找大于等于基准点的元素
while (array < pivot)
{
i++;
}
//从右到左找小于等于基准点的元素
while (array > pivot)
{
j--;
}
//如果i<=j,则互换元素
if (i <= j)
{
temp = array;
array = array;
array = temp;
i++;
j--;
}
}
//按第一躺的方法递归左右两边的子序列
if (left < j)//从左往右 left等于零 只要j还没到最左边的位置上 就会递归排下去算下去 这样做左边的永远比右边的要小
{
quick_sort(array,left,j);
}
if (i < right)
{
quick_sort(array,i,right);//左边要比右边的要小
}
}
int main()
{
int array[] = {73,34,45,2,3,5,7,8,9,29,89,100,13,15};
int i,length;
length = sizeof(array)/sizeof(array);//所有数据的字节数除以一个数据的字节数即为数据的个数
//printf("%d",length); 14
quick_sort(array, 0, length-1);//left是0
printf("排序后的结果是:\n");
for(i = 0 ; i < length; i++)
{
printf("%d", array);
}
quick_sort(array, 0, length-1); 这个array是数组名的意思吗?
void quick_sort(int array[],int left,int right) 那这个定义函数的时候 为什么又是指数组元素呢 array[]指的是一个数组,把array传进去就是把array的地址传进去 数组名array作为quik_sort函数的实参,而数组array[]则作为此函数的形参 解答问题还要求回复,是不是太过自信? jackz007 发表于 2019-2-20 10:35
解答问题还要求回复,是不是太过自信?
虽然我真的不明白您这话是什么意思{:10_243:} 但是对您的回答我悬赏感恩了 hjwwwwww 发表于 2019-2-20 13:33
虽然我真的不明白您这话是什么意思 但是对您的回答我悬赏感恩了
不好意思,不是针对楼主你的,我的本意是对 2 楼说的,抱歉! kankan 1 什么什么?
.. 看看 1
页:
[1]