快速排序函数
void quicksort(int *s,int left,int right)
{
if(left>right){
return ;
}
int flag=s[left];
int i=left;
int j=right;
while(i<j){
while(i<j&&s[j]>=flag){
j--;
}
while(i<j&&s[i]<=flag){
i++;
}
if(i<j){
int t=s[i];
s[i]=s[j];
s[j]=t;
}
}
s[left]=s[i];
s[i]=flag;
quicksort(s,left,i-1);
quicksort(s,i+1,right);
}
冒泡排序示例
#include <stdio.h>
int main(int argc, char const *argv[])
{
int i=0;
int j=0;
int temp=0;
int flag=0;
int a[10];
int len=sizeof(a)/sizeof(a[0]);
//输入数字
puts("请输入10个数字");
for(i=0;i<10;i++){
scanf("%d",&a[i]);
getchar();
}
//输出确认数字
puts("确认输入数字为:");
for(i=0;i<10;i++){
printf("%d ",a[i]);
}
putchar(10);
//冒泡排序
for(j=0;j<len-1;j++){
flag=0;
for(i=0;i<len-1-j;i++){
if(a[i]>a[i+1]){
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
flag=1;
}
}
if(0==flag){
break;
}
}
//输出排序后
puts("排序后的顺序为:");
for(i=0;i<10;i++){
printf("%d ",a[i]);
}
putchar(10);
return 0;
}