分享

选择法排序(指针方式实现)

 我是小小爱 2015-12-21
#include<stdio.h>int main(){	int sort(int *p,int n);	int a[10]={1,2,3,4,5,6,17,8,9,12};	int *p;	p=a;	sort(p,10);	for(int i=0;i<10;i++)	{		printf('%d\t',a[i]);	}	return 0;}int sort(int *p,int n){	int swap(int *p1,int *p2);	int i,j,k;	int temp;	for(i=0;i<n-1;i++)	{		k=i;		for(j=i+1;j<n;j++)		{			if(*(p+k)<*(p+j))k=j;		}		if(k!=i)		{			swap(p+k,p+i);//temp=*(p+i);*(p+i)=*(p+k);*(p+k)=temp;		}	}		return 0;}int swap(int *p1,int *p2){	int temp;	temp=*p1;*p1=*p2;*p2=temp;	return 0;}

第一次写的时候运行出错,错在sort函数第二个for循环里面,比较与交换的两个对象错了,应该是标志k,以及查找到的最大值J进行交换。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多