研究ノート:C言語バブルソートアルゴリズムの両方のバージョン

言葉遣い:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
	int a[]={2,4,5,3,9,6};
	int i ,j,tmp=0,n;
	n=sizeof(a)/sizeof(a[1]);
	printf("总共有%d个数字",n);
	printf("排序前:\n");
	for(i=0;i<n;i++)
	{
		printf("%d",a[i]);
		printf("\n");
	}
	for(i=0;i<5;i++)
	{
		for(j=0;j<5-i;j++)
		{
		if(a[j]<a[j+1])
		{
			tmp=a[j];
			a[j]=a[j+1];
			a[j+1]=tmp;
		}
		}
	    }
		printf("排序后:\n");
		for(i=0;i<n;i++)
	{
		printf("%d",a[i]);
	}

	printf("\n");

}

:(書かれた二つの新しい名前)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
	int a[]={2,4,5,3,9,6};
	int i ,j,tmp=0,n;
	n=sizeof(a)/sizeof(a[1]);
	printf("总共有%d个数字",n);
	printf("排序前:\n");
	for(i=0;i<n;i++)
	{
		printf("%d",a[i]);
		
	}
	printf("\n");
	for(i=0;i<n-1;i++)
	{
		for(j=i+1;j<n;j++)
		{
		if(a[i]<a[j])
		{
			tmp=a[i];
			a[i]=a[j];
			a[j]=tmp;
		}
		}
	    }
		printf("排序后:\n");
		for(i=0;i<n;i++)
	{
		printf("%d",a[i]);
	}

	printf("\n");

}

また、パッケージ機能することができる。
ここで特に重要なポイントを伴います!
パッケージの関数、ポインタ配列パラメータ劣化として配列パラメータ場合。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void print_array(int a[],int n)
{ int i;
	n=sizeof(a)/sizeof(a[1]);
	printf("总共有%d个数字",n);
	printf("排序前:\n");
	for(i=0;i<n;i++)
	{
		printf("%d",a[i]);
		
	}
	printf("\n");
}
void sort_array(int a[],int n)
{
//可以在这里实验:n=sizeof(a)/sizeof(a[1]);
//可以证明数组已经退化为指针。
        int i,j,tmp;
		for(i=0;i<n-1;i++)
	{
		for(j=i+1;j<n;j++)
		{
		if(a[i]<a[j])
		{
			tmp=a[i];
			a[i]=a[j];
			a[j]=tmp;
		}
		}
	    }
}
int main(void)
{
	int a[]={2,4,5,3,9,6};
	int i ,j,tmp=0,n;
	print_array(a,n);
	sort_array(a,n);
	printf("排序后:\n");
	print_array(a,n);
		

	printf("\n");

}
公開された10元の記事 ウォンの賞賛5 ビュー1196

おすすめ

転載: blog.csdn.net/yiweij/article/details/104301076