惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 司徒正美
美团技术团队
雷峰网
雷峰网
阮一峰的网络日志
阮一峰的网络日志
WordPress大学
WordPress大学
T
Tailwind CSS Blog
U
Unit 42
C
Check Point Blog
S
SegmentFault 最新的问题
Martin Fowler
Martin Fowler
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
L
LangChain Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC
罗磊的独立博客
小众软件
小众软件
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
D
DataBreaches.Net

青空之蓝

[青空之蓝-2023] - 色彩 | 青空之蓝 [青空之蓝-2022] - 平静 | 青空之蓝 [青空之蓝-2021] - 远望 | 青空之蓝 浅谈垃圾回收 | 青空之蓝 浅谈泛型擦除 | 青空之蓝 浅谈单点登录 | 青空之蓝 使用 Kotlin 编写 Spring 测试 | 青空之蓝 设计模式系列文章 | 青空之蓝 从零实现一个 Java 微框架 - IoC | 青空之蓝 从零实现一个 Java 微框架 - 前言 | 青空之蓝 浅谈 JVM:类加载 | 青空之蓝 浅谈 IO | 青空之蓝 浅谈并发:synchronized & ReentrantLock | 青空之蓝 浅谈并发:CAS & AQS | 青空之蓝 浅谈并发:ThreadLocal | 青空之蓝 浅谈并发:三大特性 | 青空之蓝 浅谈组合注解 & 注解别名 | 青空之蓝 [青空之蓝-2020]-迷茫 | 青空之蓝 Java 系列文章 | 青空之蓝 HTTP 系列文章 | 青空之蓝 浅谈 EatWhatYouKill | 青空之蓝 浅谈可扩展线程池 | 青空之蓝 聊聊写框架 | 青空之蓝 聊聊现状-[2020-09] | 青空之蓝 浅谈并发:锁 | 青空之蓝 浅谈并发:基础 | 青空之蓝 浅谈缓存 | 青空之蓝 无须定义类,Spring 快速注入 Json 参数 | 青空之蓝 浅谈 Proxy 和 Aop | 青空之蓝 从零实现一个 PHP 微框架 - 初始化请求 | 青空之蓝
C 插入排序 | 青空之蓝
Otstar Lin · 2018-11-20 · via 青空之蓝

懒得写开头了(_ _)。゜ z zZ,继续下一个排序算法

#include <stdio.h>
#define N 10  //定义要排序的数组长度

//插入排序控制Demo
//插入排序结果和方式
//结果:输出排序的数组
//方式:类似遍历比较

//本例排序从低到高

//插入排序函数
int* Ins_Sort(int n, int nums[])
{
    int i, j, temp;
    for(i = 1; i < n; i++) //外层循环控制循环轮数,从一开始代表第一个元素默认已经排序
    {
        for(j = i - 1; j >= 0; j--) //内层循环控制循环比较的轮数
        {
            //在下标 i 左边的元素已经排列,所以只要判断当原 i 的元素已经比第 j 个元素小,即完成此轮排列
            if(nums[j + 1] >= nums[j])
            {
                //完成排列时跳出,防止执行无用的步骤
                break;
            }
            else
            {
                //交换数据
                temp = nums[j + 1];
                nums[j + 1] = nums[j];
                nums[j] = temp;
            }
        }
    }
    //返回数组,其实也可以不用返回,因为操作的就是原数组
    return nums;
}

int main(int argc, char const *argv[])
{
    //要进行排序的数组,这里就不写循环录入了,直接初始化
    int nums[N] = {9, 2, 6, 1, 8, 5, 4, 3, 7, 10};
    int i;
    //调用函数进行排序
    int *p = Ins_Sort(N, nums);
    //循环输出排序好的数组,由小到大
    for(i = 0; i < N; i++)
    {
        printf("%d ", p[i]);
    }
    printf("\n");
    for(i = N - 1; i >= 0; i--)
    {
        printf("%d ", p[i]);
    }
    return 0;
}
#include <stdio.h>
#define N 10  //定义要排序的数组长度

//插入排序控制Demo
//插入排序结果和方式
//结果:输出排序的数组
//方式:类似遍历比较

//本例排序从低到高

//插入排序函数
int* Ins_Sort(int n, int nums[])
{
    int i, j, temp;
    for(i = 1; i < n; i++) //外层循环控制循环轮数,从一开始代表第一个元素默认已经排序
    {
        for(j = i - 1; j >= 0; j--) //内层循环控制循环比较的轮数
        {
            //在下标 i 左边的元素已经排列,所以只要判断当原 i 的元素已经比第 j 个元素小,即完成此轮排列
            if(nums[j + 1] >= nums[j])
            {
                //完成排列时跳出,防止执行无用的步骤
                break;
            }
            else
            {
                //交换数据
                temp = nums[j + 1];
                nums[j + 1] = nums[j];
                nums[j] = temp;
            }
        }
    }
    //返回数组,其实也可以不用返回,因为操作的就是原数组
    return nums;
}

int main(int argc, char const *argv[])
{
    //要进行排序的数组,这里就不写循环录入了,直接初始化
    int nums[N] = {9, 2, 6, 1, 8, 5, 4, 3, 7, 10};
    int i;
    //调用函数进行排序
    int *p = Ins_Sort(N, nums);
    //循环输出排序好的数组,由小到大
    for(i = 0; i < N; i++)
    {
        printf("%d ", p[i]);
    }
    printf("\n");
    for(i = N - 1; i >= 0; i--)
    {
        printf("%d ", p[i]);
    }
    return 0;
}

C 插入排序

https://blog.ixk.me/post/c-insert-sort
  • 许可协议

    BY-NC-SA

  • 本文作者

    Otstar Lin

  • 发布于

    2018/11/20

转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!

C 快速排序C 归并排序

HomeGitHubStatus

Copyright © 2017-2026 Otstar Lin

Theme Coline by Otstar LinPowered by Next.js