c一维数组之排序
c中一维数组排序,冒泡,选择,快速排序利用一维数组,2种冒泡排序
#include <stdio.h>
#include <stdlib.h>
int arr[]={2,6,9,3,1,4,8,0,-1,99,8,7};
int len=sizeof(arr)/sizeof(arr);
//选择
static void select_sort(){
int i,j,k,tmp;
int time=0;
for(i=0;i<len;i++){
k=i;
for(j=i+1;j<len;j++){
if(arr<arr){
k=j;
}
}
if(k!=i){
tmp=arr;
arr=arr;
arr=tmp;
time++;
}
}
printf("time=%d\n",time);
}
static void sort1(){
int i,j,tmp;
int time=0;
for(i=0;i<len-1;i++){
for(j=i+1;j<len;j++){
if(arr>=arr){
tmp=arr;
arr=arr;
arr=tmp;
time++;
}
}
}
printf("time=%d\n",time );
}
static void sort2(){
int i,j,tmp;
int time=0;
for(i=0;i<len-1;i++){
for(j=0;j<len-1-i;j++){
if(arr >arr){
tmp=arr;
arr=arr;
arr=tmp;
time++;
}
}
}
printf("time=%d\n",time );
}
int main(){
// sort1();//time=31
// sort2();//time=30
select_sort(); //time=9
}选择排序
#include <stdio.h>
#include <stdlib.h>
int arr[]={2,6,9,3,1,4,8,0,-1,99,8,7};
int len=sizeof(arr)/sizeof(arr);
static void select_sort(){
int i,j,k,tmp;
for(i=0;i<len;i++){
k=i;
for(j=i+1;j<len;j++){
if(arr<arr){
k=j;
}
}
if(k!=i){
tmp=arr;
arr=arr;
arr=tmp;
}
}
for(i=0;i<len;i++){
printf("%d ",arr );
}
printf("\n");
}
int main(){
select_sort();
}
文档来源:51CTO技术博客https://blog.51cto.com/u_15310934/3169852
页:
[1]