美文网首页
C语言中排序方法的使用

C语言中排序方法的使用

作者: 黑铁选手 | 来源:发表于2019-08-02 21:47 被阅读0次

C语言中排序方法

学习目的

今天我们学习了三种排序方法:冒泡排序法、选择排序法、插入排序法。

相关技术,及其实用

为什么会使用排序:
为了是想同类型的不同数据按照想要的顺序输出。
怎么用:
冒泡法、选择法、插入法
冒泡排序法:通过一次排序,使最大的沉底。例如:

    int num[] = { 3,0,1,8,7,2,5,4,9 };
    for (int i = 0; i < 10; i++) {//外层循环 比较的次数
        for (int j = 0; j < 10- i-1; j++) {//内层循环 如何比较
            if (num[j] > num[j + 1]) {
                //交换j 和j+1 的值
                int temp = num[j+1];
                num[j + 1] = num[j];
                num[j] = temp;
            }

        }
  }

选择排序:一次取出一个值,默认他是最小的,如果发现不是这个数最小就交换,便利整个数组,找到一个最小的。例如:

int num[] = { 3,0,1,8,7,2,5,4,9 };
for (int i = 0; i < 10 - 1; i++) {
        //默认这是最小的
        
        for (int j = i + 1; j < 10 - 1; j++) {
            //控制用min和后面的每一个进行比较
            if (num[i] > num[j]) {
                //j对应的数字比min还小 交换
                int temp = num[i];
                num[i] = num[j];
                num[j] = temp;

            }
        }
        //一次遍历后找到最小的值
    }

插入排序:取出一个数,把他从开始到最后一直比较,比较合适就插进去,进行排序、边插边排。例如:

//插入排序法
        //寻找这个数字对应的位置
        int j = 0;
        for (; j < i; j++) {
            //j对应的数字和产生的数字进行比较
            if (temp < originalArray[j]) {
                //j后面的内容往后移动 腾出空间

                for (int k = i; k > j; k--) {
                    originalArray[k] = originalArray[k - 1];
                }
                break;
            }
        }
        //保存到数组里面去
        originalArray[j] = temp;
    }

同时,可以看出数组在排序方法里面的缺点:虽然访问方便,但插入和删除效率不高。

感想

虽然学习了这三种排序方法知道了一些用法,但是,当要运用这些方法时,就感觉一脸懵,不知道选择哪种排序方法更加的简便,还是不够清楚明了。同时呢,在逻辑思维方面还出现很大的不足,拿到一个demo只知道有具体有那几个大部分,但是在大部分里面就不知道如何去实现。比如:在具体实现时,就拿猜数字的demo 来说,当写到如何实现怎么进行移动时,具体的代码如何实现就是一脸懵,难啊。

相关文章

网友评论

      本文标题:C语言中排序方法的使用

      本文链接:https://www.haomeiwen.com/subject/churdctx.html