冒泡,取舍,插入,快速排序
冒泡,选择,插入,快速排序
#include<stdio.h>
void bubble(int *arr,int len){
int i=0,j=0,tmp=0,flag=1;
for(i=0;i<len-1;i++){
for(j=0;j<len-1-i;j++){
if(*(arr+j)>*(arr+j+1)){
tmp=*(arr+j);
*(arr+j)=*(arr+j+1);
*(arr+j+1)=tmp;
flag=0;
}
}
if(1==flag) break;
}
}
void insert(int *arr,int len){
int i=0,j=0,tmp=0;
for(i=1;i<len;i++){
tmp=*(arr+i);
for(j=i;*(arr+j-1)>tmp&&j>=1;j--){
*(arr+j)=*(arr+j-1);
}
if(j!=i) *(arr+j)=tmp;
}
}
void select(int *arr,int len){
int i=0,j=0,tmp=0,min=0;
for(i=0;i<len-1;i++){
min=i;
for(j=i;j<len;j++){
if(*(arr+min)>*(arr+j)){
min=j;
}
}
if(min!=i){
tmp=*(arr+i);
*(arr+i)=*(arr+min);
*(arr+min)=tmp;
}
}
}
void quick(int* left,int* right){
if(left>=right)
return;
int* i=left;
int* j=right;
int key=*i;
while(i<j){
if(key<=*j){
j--;
}
*i=*j;
if(key>=*i){
i++;
}
*j=*i;
}
*i=key;
quick(left,i-1);
quick(i+1,right);
}
int main(){
int iData_a[9]={30,5,20,10,15,20,8,25,12},i=0;
// bubble(iData_a,9);
// insert(iData_a,9);
// select(iData_a,9);
quick(iData_a,iData_a+9);
printf("排序后的元素依次是:\n");
for(i=0;i<9;i++){
printf("%d ",*(iData_a+i));
}
printf("\n");
}