普通版1:
#include<stdio.h>
int main()
{
int a[100];
int i,j,n,des;
printf("please enter n:");
scanf("%d",&n);
printf("please enter the numbers:");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(j=0;j<n;j++)
for(i=0;i<n-j;i++) // 这里是递增的
if(a[i]>a[i+1])
{
des=a[i];
a[i]=a[i+1];
a[i+1]=des;
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("
");
return 0;
}
普通版2:
#include<stdio.h>
int main()
{
int a[10],i=0,j,temp;
printf("please enter 10 numbers:
");
while(i<10)
scanf("%d",&a[i++]);
for(i=0;i<10;i++)
for(j=9;j>=i;j--) // 这里是递减的
if(a[j]<a[j-1])
temp=a[j],a[j]=a[j-1],a[j-1]=temp;
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("
");
return 0;
}
指针版:
#include<stdio.h>
#define N 10
int main()
{
int a[N],*p=a,*var=a,x;
printf("请输入10个整数:
");
for(p=a;p<a+N;p++)
scanf("%d",p);
for(var=a+1;var<a+N;var++){
for(p=a+N-1;p>=a;p--){
if(*p>*(p-1))
x=*(p-1),*(p-1)=*p,*p=x;
}
}
printf("
对10个整数进行由大到小排序:
");
for(p=a;p<a+N;p++)
printf("%d ",*p);
printf("
");
return 0;
}
对字符串进行排序:
#include<stdio.h>
#include<string.h>
#define N 20
#define n 20
int main()
{
char c[N][n],cont[n];
int i,j;
printf("Please enter the names of all the strings:
");
for(i=0;i<N;i++){
scanf("%s",c[i]);
}
for(i=1;i<N;i++){
for(j=0;j<N-i;j++){
if(strcmp(c[j+1],c[j])<0)
strcpy(cont,c[j]);strcpy(c[j],c[j+1]);strcpy(c[j+1],cont);
}
}
for(i=0;i<N;i++){
if(i%5==0)
printf("
");
printf("%s ",c[i]);
}
printf("
");
return 0;
}
函数版:
#include<stdio.h>
void Print(int *num, int n)
{
int i;
for(i = 0; i < n; i++)
printf("%d ", num[i]);
puts("
");
return;
}
void Bubble_Sort(int *num, int n)
{
int i, j;
for(i = 0; i < n; i++)
{
for(j = 0; i + j < n - 1; j++)
{
if(num[j] > num[j + 1])
{
int temp = num[j];
num[j] = num[j + 1];
num[j + 1] = temp;
}
Print(num, n);
}
}
return;
}
int main()
{
int num[8] = {5,3,1,4,2};
Bubble_Sort(num, 5);
return 0;
}
---------------------------------补充 2017 9.29 23:18:07--------------------------------
链表版冒泡排序:点击这里