排序:选择排序(selection sort)

    技术2026-08-03  2

    查询数组中最小的元素,与A[1]交换.然后再查询次最小的数,与A[2]交换.

     

    #include<stdio.h> void selection_sort(int arr[],int cnt) { int init_pos,pos,init_min,i; for(init_pos=0;init_pos<cnt-1;init_pos++) { init_min=arr[init_pos]; pos=init_pos; for(i=init_pos+1;i<cnt;i++) { if(arr[i]<init_min){ pos=i; init_min=arr[i]; } } if(pos!=init_pos) { int tmp=arr[init_pos]; arr[init_pos]=arr[pos]; arr[pos]=tmp; } } } int main() { int arr[7]={1,3,11,7,2,4,6}; int i=0; selection_sort(arr,7); for(i=0;i<7;i++) { printf("%d/n",arr[i]); } getchar(); return 0; } 

     

    参考:

    1.<算法导论>第二版2.2-2

    最新回复(0)