冒泡排序易于理解:
#include<stdio.h>
int main()
{
int arr[]={99,94,95,92,93,97,96,88,84,89};
int i,j;
for(i=0;i<10;i++){
if(i!=9){
printf("%d,",arr[i]);
}else{
printf("%d\n",arr[i]);
}
}
for(i=8;i>=0;i--){
for(j=0;j<=i;j++){
if(arr[j]>arr[j+1]){
int temp;
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for(i=0;i<10;i++){
if(i!=9){
printf("%d,",arr[i]);
}else{
printf("%d",arr[i]);
}
}
}
快速排序对计算机而言节省时间:
#include<stdio.h>
void quick_sort(int array[],int left,int right)
{
int i=left,j=right;
int temp;
int pivot;
pivot=array[(left+right)/2];
while(i<=j){
//从左到右找到大于基准点的元素
while(array[i]<pivot){
i++;
}
//从右到左找到小于基准点的元素
while(array[j]>pivot){
j--;
}
//如果i<=j,则互换
if (i<=j){
temp=array[i];
array[i]=array[j];
array[j]=temp;
i++;
j--;
}
}
if(left<j){
quick_sort(array,left,j);
}
if(i<right){
quick_sort(array,i,right);
}
}
int main(void)
{
int array[]={156,456,147,186,258,654,268,357,26,24};
int i,len;
len=sizeof(array)/sizeof(array[0]);
quick_sort(array,0,len-1);
printf("排序后的结果是:\n");
for(i=0;i<len;i++){
printf("%d ",array[i]);
}
return 0;
}