江南才子 发表于 2021-7-23 11:17:30

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]
查看完整版本: c一维数组之排序