2.31模型--数组排序函数

【注:本程序验证是使用vs2013版】

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/*
     这里注意:
     如果数组作为函数参数,数组形参退化为指针(主要是为了高效)
     所以此处形参  *src 、 src[]、  src[1]  的实际效果一样
*/
int sort_array(int *src, int length){ 
    int  i, j, temp, ret;
    int *from = src; //这里是否设置成全局变量更好?
    if (from == 0){        return -1;        }
    
    for (i = 0; i < length - 1; i++){//选择法排序
        for (j = i + 1; j < length; j++){
            if (from[i] > from[j]){
                temp = from[j];
                from[j] = from[i];
                from[i] = temp;
            }
        }
    }
    return 0;
}


int main(void){
    int a[] = { 10, 7, 1, 9, 4, 6, 7, 3, 2, 0 };
    int i = 0;
    int length = sizeof(a) / sizeof(a[0]);
    int ret = 0;

    printf("排序前");
    for (i = 0; i < length; i++){
        printf("%d  ", a[i]);
    }
    printf("\n");
   ret
= sort_array(a, length);//参数:数组名、需要排序的长度 if (ret != 0){ return; } printf("排序后"); for (i = 0; i < length; i++){ printf("%d ", a[i]); }
   printf(
"\n"); system("pause"); return 0; }

猜你喜欢

转载自www.cnblogs.com/wlstm/p/11105489.html