1.常见的数字冒泡排序
#include<stdio.h>
void Maopao(int arr[],int n)
{
int i=0;
int sign=0;
for(i=0;i<n-1;i++) // 比较趟数,每次回来一趟下一次两两比较的时候少一个数;
{
int j=0;
sign=1;
for(j=0;j<n-1-i;j++) //两两比较
{
while(arr[j]>arr[j+1])
{
int tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
sign=0;
}
}
if(sign==1)
break;
}
}
<pre name="code" class="cpp">int main()
{
int arr[]={1,9,7,6,5,3};
int i=0;
int sz=sizeof(arr)/sizeof(arr[0]);
Maopao(arr,sz);
for(i=0;i<sz;i++)
{
printf("%d ",arr[i]);
}
} 2.字符串冒泡排序
分析:
代码:
#include<stdio.h>
#include<string.h>
void sort_str(char* arr[],int sz)
{
int i=0;
for(i=0;i<sz-1;i++)
{
int j=0;
for(j=1;j<sz-1-i;j++)
{
if(strcmp(arr[j],arr[j+1])>0)
{
char *tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
}
}
}
}
int main()
{
int i=0;
char* arr[4]={"aaaaaa","ddddd","ccccc","eeee"};//指针函数初始化为要比较的字符串。
sort_str(arr,sizeof(arr)/sizeof(char*));
for(i=0;i<sizeof(arr)/sizeof(char*);i++)
{
printf("%s\n",arr[i]);
}
return 0;
}