冒泡排序
#include <stdio.h>
int main(){
int arr[5]={4,7,1,3,2};
int len=5;
for(int i=1;i<5;i++)
for(int j=0;j<len-i;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
}
for(int i=0;i<len;i++)
printf("%d ",arr[i]);
}
快速排序
#include <stdio.h>
int arr[10]={10,9,8,7,6,5,4,3,2,1};
void QuickSort(int *arr,int low,int high){
if(low>=high)
{
return;
}
int i=low;
int j=high;
int key=*(arr+i);
while(i<j){
while((i<j)&&key<=arr[j])
j--;
*(arr+i)=*(arr+j);
while((i<j)&&key>=arr[i])
i++;
*(arr+j)=*(arr+i);
*(arr+i)=key;
//递归
QuickSort(arr,low,i-1);
QuickSort(arr,i+1,high);
}
}
void print(int *arr,int n){
for(int i=0;i<n;i++){
printf("%d",*(arr+i));
}
}
int main(){
QuickSort(arr,0,9);
printf("排序后的数组为 ");
print(arr,10);
}