冒泡
void maopao(int arr[],int len){
for(int i=0;i<len-1;i++){
for(int j=i+1;j<len;j++){
if(arr[i]>arr[j]){
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
int main()
{
int arr[]={9,0,1,4,6,2,3};
int len=sizeof(arr)/sizeof(arr[0]);
maopao(arr,len);
for(int i=0;i<len;i++){
printf("%d ",arr[i]);
}
printf("\n");
return 0;
}
选择
void paixu(int arr[],int len){
for(int i=0;i<len-1;i++){
for(int j=0;j<len-1-i;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
int main()
{
int arr[]={9,0,1,4,6,2,3};
int len=sizeof(arr)/sizeof(arr[0]);
paixu(arr,len);
for(int i=0;i<len;i++){
printf("%d ",arr[i]);
}
printf("\n");
return 0;
}
快排
void kuaipai(int arr[],int left,int right){
if(left>right){
return;
}
int i=left;
int j=right;
int baseNum=arr[left];
while(i!=j){
while(arr[j]>=baseNum&&i<j){
j--;
}
while(arr[i]<=baseNum&&i<j){
i++;
}
if(i<j){
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
arr[left]=arr[i];
arr[i]=baseNum;
kuaipai(arr,left,i-1);
kuaipai(arr,i+1,right);
}
int main()
{
int arr[]={9,0,1,4,6,2,3};
int len=sizeof(arr)/sizeof(arr[0]);
kuaipai(arr,0,6);
for(int i=0;i<len;i++){
printf("%d ",arr[i]);
}
printf("\n");
return 0;
}
参考文章
冒泡、选择、插入、快排;C/C++实现