各种排序算法(C语言)

#include <stdlib.h>
#include <stdio.h>

 void DataSwap(int* data1, int* data2)
 {
     int temp = *data1;
     *data1 = *data2;
     *data2 = temp;
 }

void insertSort(int arr[],int iDataNum)
{
	int i,j,temp;

	for(i=1;i<iDataNum;i++)
	{
		j=i;
		temp = arr[i];
		while(j>0 && arr[j-1] < temp)
		{
			arr[j]=arr[j-1];
			j--;
		}
		arr[j]=temp;
	}

}

void bubbleSort(int arr[],int iDataNum)
{
	int i,j,temp;
	for(i=0;i<iDataNum;i++)
	{
		for(j=1;j<iDataNum-i;j++)
		{
			if(arr[j-1]>arr[j])
			{
				DataSwap(&arr[j-1],&arr[j]);
			}
		}
	}
}

void selectSort(int *arr,int iDataNum)
{
	for(int i=0;i<iDataNum-1 ; i++)
	{
		int index=i;
		for(int j=i+1;j<iDataNum;++j)
		{
			if(arr[j]>arr[index])
			{
				index=j;
			}
 		}
		if(index!=i)
		{
			DataSwap(&arr[i],&arr[index]);
		}
	}
}
int main()
{
	int arr[]={44,222,11,33,23,55};
	int iDataNum=sizeof(arr)/sizeof(int);
	 //insertSort(arr,iDataNum);
	//selectSort(arr,iDataNum);
	bubbleSort(arr,iDataNum);
	for(int i=0 ;i<iDataNum ;i++)
	{
		printf("%d\n",arr[i]);
	}
}

 排序算法还有很多。以后慢慢补充

posted on 2014-05-07 16:08  IronMan_  阅读(170)  评论(0编辑  收藏  举报