//直接选择排序
#include<stdio.h>
void SelectionSort(int arr[],int len)
{
int i,j;
int k,min;
int temp;
for(i=0;i<len-1;i++)
{
min=arr[i]; //每趟排序都把无序区第一个数设置为最小
k=i;
for(j=i+1;j<len;j++)
{
if(arr[j]<min)
{
min=arr[j];
k=j; //记录下此次最小数索引
}
}
if(k!=i) //如果上面的if执行过
{
//交换
temp=arr[k];
arr[k]=arr[i];
arr[i]=temp;
}
}
for(i=0;i<len;i++)
printf("%d ",arr[i]);
}
int main()
{
int a[10]={0,1,7,2,5,4,3,6,8,9};
SelectionSort(a,10);
return 0;
}
![](//images0.cnblogs.com/i/422011/201405/021145396583191.jpg)
//冒泡排序
void BubbleSort(int arr[],int len)
{
int i,j;
int sign,temp;
for(i=0;i<len;i++)
{
sign=0;
for(j=len-1;j>i;j--) //从最后一个开始交换
{
if(arr[j]<arr[j-1]) //如果后面的数小,则交换
{
temp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
sign=1;
}
}
if(0==sign)
break;
}
for(i=0;i<len;i++)
printf("%d ",arr[i]);
}
int main()
{
int a[10]={0,1,7,2,5,4,3,6,8,9};
BubbleSort(a,10);
return 0;
}
![](//images0.cnblogs.com/i/422011/201405/021146279865256.jpg)