常用的两种排序_冒泡排序与选择排序
#include<stdio.h>
#define P printf
void main(){
int arr[]={10,25,30,19,28,2,16,53,95,85,64,70};
int len=sizeof(arr)/sizeof(arr[0]);
arrlist(arr,len);
arr_paixu(arr,len);//选择排序
arrlist(arr,len);
arr_maopao(arr,len);//冒泡排序
arrlist(arr,len);
getchar();
}
arrlist(int* arr,int len){
int i=0;
for(i=0;i<len;i++){
i<len-1?P("%d,",arr[i]):P("%d\n",arr[i]);
}
}
arr_paixu(int* arr,int len){
int i=0,j=0,temp=0,k=0;
for(i=0;i<len;i++){
for(j=i+1;j<len;j++)
{
if(arr[j]<arr[i]){
temp=arr[j];
arr[j]=arr[i];
arr[i]=temp;
}
k++;
}
}
P("快速排序循环了%d次\n",k);
}
arr_maopao(int* arr,int len){
int i=0,j=0,temp=0,k=0;
for(i=0;i<len-1;i++){
for(j=i+1;j<len-1;j++){
if(arr[i]>arr[j]){
temp=arr[j];
arr[j]=arr[i];
arr[i]=temp;
}
k++;
}
}
P("冒泡排序循环了%d次\n",k);
}