C语言 实现两种排序方法

来源:互联网 发布:岁寒然后知松柏下一句 编辑:程序博客网 时间:2024/09/21 09:28
头文件:

函数原型:
 void sortA1(int a[], int length);   //选择排序void sortA2(int a[], int length); //冒泡排序void printA1(int a[], int length);  //遍历数组实现函数:void sortA1(int a[], int length){ int i, j, temp; for(i = 0; i <length; ++i){ for(j = i + 1; j < length; ++j){if(a[j]< a[i]){   //如果后一个元素小于前一个元素则交换                 temp = a[i];              a[i] = a[j];              a[j] = temp;           }       }    }}void printA1(int a[], int length){    int i;    for(i = 0; i <length; ++i){       printf("%d,", a[i]);    }    printf("\n");}void sortA2(int a[], int length){    int i, j, temp;    for(i = 0; i <length; ++i){      for(j = length - 1; j > i; --j){           if(a[j]> a[j - 1]){               temp = a[j];              a[j] = a[j - 1];              a[j - 1] = temp;          }      }   }}测试:void main(){int length = 0;int a[] = {12, 43, 8, 50, 100, 52,0};length = sizeof(a) / sizeof(a[0]);printf("排序前\n");printA1(a, length);sortA1(a, length);printf("选择排序后\n");printA1(a, length);sortA2(a, length);printf("冒泡排序后\n");printA1(a, length);system("pause");}函数原型:void sortA1(int a[], int length);   //选择排序void sortA2(int a[], int length); //冒泡排序void printA1(int a[], int length);  //遍历数组实现函数:void sortA1(int a[], int length){    int i, j, temp;    for(i = 0; i <length; ++i){       for(j = i + 1; j < length; ++j){           if(a[j]< a[i]){   //如果后一个元素小于前一个元素则交换              temp = a[i];              a[i] = a[j];              a[j] = temp;          }       }    }}void printA1(int a[], int length){    int i;    for(i = 0; i <length; ++i){       printf("%d,", a[i]);    }    printf("\n");}void sortA2(int a[], int length){   int i, j, temp;    for(i = 0; i <length; ++i){       for(j = length - 1; j > i; --j){           if(a[j]> a[j - 1]){                           temp = a[j];              a[j] = a[j - 1];              a[j - 1] = temp;           }      }    }}测试:void main(){int length = 0;int a[] = {12, 43, 8, 50, 100, 52,0};length = sizeof(a) / sizeof(a[0]);printf("排序前\n");printA1(a, length);sortA1(a, length);printf("选择排序后\n");printA1(a, length);sortA2(a, length);printf("冒泡排序后\n");printA1(a, length);system("pause");}