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(); }

浙公网安备 33010602011771号