排序算法(C 语言版)
1、选择排序
选最小:
#include<stdio.h>
int num[10]={9,7,2,3,5,6,1,4,8,0};
int main()
{
int i,j;
int min;
int temp;
int n=10;
for(i=0;i<n-1;i++)
{
min = i;
for(j=i+1;j<n;j++)
{
if(num[min]>num[j])
min=j;
}
if(min!=i)
{
temp=num[min];
num[min]=num[i];
num[i]=temp;
}
}
for(i=0;i<n;i++)
{
printf("%d\t",num[i]);
}
printf("\n");
return 0;
}
选最大:
#include<stdio.h> int num[10]={9,7,2,3,5,6,1,4,8,0}; int main() { int i,j; int n=10; int max; int temp; for(i=0;i<n-1;i++) { max=0; for(j=1;j<n-i;j++) { if(num[max]<num[j]) max=j; } if(max!=n-1-i) { temp = num[max]; num[max]=num[n-1-i]; num[n-1-i]=temp; } } for(i=0;i<n;i++) { printf("%d\t",num[i]); } printf("\n"); return 0; }
2、冒泡排序
选最大
#include<stdio.h>
int num[10]={9,7,2,3,5,6,1,4,8,0};
int main()
{
int i,j;
int n=10;
int temp;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(num[j]>num[j+1])
{
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
for(i=0;i<n;i++)
{
printf("%d\n",num[i]);
}
return 0;
}
3、插入排序