评论

收藏

[C++] c一维数组之排序

编程语言 编程语言 发布于:2021-07-23 11:17 | 阅读数:364 | 评论:0

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[0]);
//选择
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[j]<arr[k]){
        k=j;
      }
    }
    if(k!=i){
      tmp=arr[i];
      arr[i]=arr[k];
      arr[k]=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[i]>=arr[j]){
        tmp=arr[j];
        arr[j]=arr[i];
        arr[i]=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[j] >arr[j+1]){
        tmp=arr[j+1];
        arr[j+1]=arr[j];
        arr[j]=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[0]);
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[j]<arr[k]){
        k=j;
      }
    }
    if(k!=i){
      tmp=arr[i];
      arr[i]=arr[k];
      arr[k]=tmp;
    }
  }
  for(i=0;i<len;i++){
    printf("%d ",arr[i] );
  }
  printf("\n");
}
int main(){
  select_sort();
}


关注下面的标签,发现更多相似文章