【資料結構】選擇排序

pengfoo發表於2012-09-12
#include <stdio.h>
//#include <string.h>

void swap(int *a,int* b)
{
	int tmp;
	tmp = *a;
	*a = *b;
	*b = tmp;
}

//void BubbleSort(int *p, int n)
//{
//	int i,j;
//	for(i=0; i<n ;i++)
//	{
//		for( j=n-1; j >= i; j--)
//		{
//			if(p[j]<p[j-1])
//				swap(&p[j], &p[j-1]);
//		}
//	}
//}

void SelectSort(int *p, int n)
{
	int i,j;
	int min = 0;
	for(i=0; i<n-1; i++)
	{
		for(j=i+1; j<n; j++)
		{
			if(p[j]<p[i])
			{
				min = j;//記錄下標
				swap(&p[i], &p[min]);
			}
		}
		
	}
}



int main()
{
	int i ;
	int num[9]={9,1,5,8,3,7,4,6,2};
	//BubbleSort(num,9);
	SelectSort(num,9);

	for(i=0 ; i<9 ;i++)
	{
		printf("%d ",num[i]);
	}
	

	return 0;
}

相關文章