C语言中排序算法

选择排序:拿到其中一个元素的值依次和其他元素进行比较,完全比较完一次之后,最大或者最小的值出现在第0.

冒泡排序:用两个相邻的元素进行比较,每完全比较完依次,最大或者最小的值出现在末尾.

例:

         int nums[5] = {9,3,4,6,1};

    int length = sizeof(nums)/sizeof(nums[0]);

    for ( int i = 0 ; i <length; i++) {

        printf("num[%i] = %i\n",i,nums[i]);

    }

    for (int i = 0 ; i < length-1; i++) {

        for (int j = 0 ; j <length -1 - i; j++) {

            if (nums [j] > nums [j+1]) {

                int temp  = nums[j];

                nums[j]   = nums[j +1];

                nums[j + 1] = temp;

            }

        }

    }

    printf("---\n");

    for ( int i = 0 ; i <length; i++) {

        printf("num[%i] = %i\n",i,nums[i]);

    }

折半查找:

1.数组必须是有序的

2.必须知道 min 和 max 的值(范围值)

3.动态计算 mid(中间)的值

4.如果 mid 对应的值大于了需要查找的值,那么 max 要变小为 mid-1.

5.如果 mid 对应的值小于了需要查找的值,那么 max 要变小为  mid+1.

posted @ 2016-07-29 13:56  偷吃的喵  阅读(178)  评论(0编辑  收藏  举报