美文网首页
8.02 集训第五天 【C语言常用的三种排序方法】

8.02 集训第五天 【C语言常用的三种排序方法】

作者: 草莓灵啾啾 | 来源:发表于2019-08-03 09:21 被阅读0次

今日目标

了解三种排序方法的原理

学习内容

三种排序方法
  • 冒泡排序

    原理:从第一个数开始,依次比较相邻的两个元素,如果顺序错误就交换位置,直至所有的数排列正确
int num[] = {3,0,1,8,7,2,5,4,6,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;
            }
        }
    }
  • 选择排序

    原理:一次取出一个值,默认他是最小的如果发现比这个数小,就交换,遍历整个数组,找到一个真正意义上最小的,交换到最前面,依次循环
for (int i = 0; i < 10-1; i++){
        //默认这是最小的
        //int min = num[i];//3
        for (int j = i+1; j < 10; j++){
            //控制用min和后面的每一个进行比较
            if (num[i] > num[j]){
                //j对应的数字比min还小 交换
                int temp = num[i];
                num[i] = num[j];
                num[j] = temp;
            }
        }
        //一次遍历之后找到最小的值min
        //num[i] = min;
    }
  • 插入排序

    原理:从第二个数开始抽出,依次与前面的数比较,若比前面的数小,就插到前面去
for (int i = 0; i < 10; i++) {
        //让i和i+1比较大小
        if (num[i] > num[i+1]) {
            //交换值
            int temp = num[i];
            num[i] = num[i+1];
            num[i+1] = temp;
            
            //让num[i]和前面的所有进行比较
            for (int j = i; j > 0; j--){
                if (num[j] < num[j-1]) {
                    temp = num[j];
                    num[j] = num[j-1];
                    num[j-1] = temp;
                }
            }
        }
    }
    
    for (int i = 0; i < 10; i++) {
        printf("%d ", num[i]);
    }
    printf("\n");
    return 0;
}
随机生成数
  • rand(产生随机数)
    相关函数
    srand
    表头文件
    #include<stdlib.h>
    定义函数
    int rand(void)
  • rand()%n表示产生0~n-1的随机数

实际操作

心得体会

写程序20% 改程序80%
如果我能达到写程序50% 改程序50%
我就能出师了吧
\color{red}{注:}gif来源于:
https://www.cnblogs.com/xaimicom/p/9189471.html
https://blog.csdn.net/csdn_baotai/article/details/80293679
(侵删)

相关文章

  • 8.02 集训第五天 【C语言常用的三种排序方法】

    今日目标 了解三种排序方法的原理 学习内容 三种排序方法 冒泡排序原理:从第一个数开始,依次比较相邻的两个元素,如...

  • C语言中排序方法的使用

    C语言中排序方法 学习目的 今天我们学习了三种排序方法:冒泡排序法、选择排序法、插入排序法。 相关技术,及其实用 ...

  • Java Go python 运行速度对比

    Java Go python 运行速度对比 系统环境 测试方法 选用常用的冒泡排序分别使用三种语言进行1亿次排序,...

  • 堆排序 js实现

    /* 最近 在看c语言版的数据结构,c用法着实很难,于是按照意思,仿照c语言写了javascript版的三种排序方...

  • 三种常见排序方法(C语言)

    一、冒泡排序 1. 方法简述: 每次相邻两个数比较,若升序,则将大的数放到后面,一次循环过后,就会将最大的数放在最...

  • 三种初级排序

    三种初级排序 冒泡排序 选择排序 插入排序 此篇文章中展示的代码为 C 语言代码 ,数组索引操作替换为指针操作。 ...

  • 冒泡排序

    C语言的简单排序方法:大数上浮,下数下沉.

  • 认识java(一)

    原创 java输入输出 java方法 java常用容器类和接口 外部排序接口:compatator内部排序接口:c...

  • C语言常用方法

    1)字符串操作strcpy(p, p1) 复制字符串strncpy(p, p1, n) 复制指定长度字符串strc...

  • 排序

    图解:C语言入门:插入排序(代码实现,而不是排序方法阐述) - Rivival_S 的博客 - CSDN博客 插入...

网友评论

      本文标题:8.02 集训第五天 【C语言常用的三种排序方法】

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