`
加州板栗
  • 浏览: 25868 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

选择法-冒泡排序

J# 
阅读更多
#include <stdio.h>
int main(int argc, char *argv[])
{
	int i,arr[5];
	int *p=arr;
	void sort(int x[],int n);
	void sort1(int x[],int n);
	void sort2(int x[],int n);
	printf("请输入数据:");
	for(i=0;i<5;i++)
		scanf("%d",&arr[i]);//记住这儿是&arr[i],不要写成arr[i] 
	
	sort2(p,5);
	printf("从小到大排序后的数据是:");
	for(p=arr;p<arr+5;p++)
		printf("%d ",*p);
	printf("\n");
	
	p=arr;
	sort1(p,5);
	printf("在sort2排序后的数组把最大的数字放在第一位:");
	for(p=arr;p<arr+5;p++)
		printf("%d ",*p);
	printf("\n");
 
    p=arr;//把指针恢复到七十位置,这部很重要 
	sort(p,5);
	printf("把sort1排列后的数组从大到小排列:");
	for(p=arr;p<arr+5;p++)
		printf("%d ",*p);
	printf("\n");
	

	return 0;
}
//从大到小排序 
void sort(int x[],int n)
{
	int k,i;
	for(k=0;k<n-1;k++){
		for(i=k+1;i<n;i++){
	  		if(x[k]<x[i]){
		  		int temp;
		  		temp=x[k];
		  		x[k]=x[i];
		  		x[i]=temp;
		  	}
		}
	}
}
//以x[0]位置为标杆 逐次和后面的比较大小 
void sort1(int x[],int n){
	int i;
		for(i=1;i<n;i++){
	  		if(x[0]<x[i]){
		  		int temp;
		  		temp=x[0];
		  		x[0]=x[i];
		  		x[i]=temp;
		  	}
		}
	
}
//从小到大排序 
void sort2(int x[],int n){
	int i,k,j,temp;
	for(i=0;i<n-1;i++){
		k=i;
		for(j=i+1;j<n;j++)
			if(x[k]>x[j])k=j;
		if(i!=k){
			temp=x[i];
			x[i]=x[k];
			x[k]=temp;
		}
	}
}

 

输入: 2 1 5 4 3

从小到大排序后的数据是:1 2 3 4 5

在sort2排序后的数组把最大的数字放在第一位:5 1 2 3 4

把sort1排列后的数组从大到小排列:5 4 3 2 1

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics