#include<stdio.h>
#define MAXSIZE 100
typedef int KeyType;
typedef struct
{
KeyType key;
}RecordType;
typedef struct
{
RecordType r[MAXSIZE+1];
int length;
}RecordList;
RecordList L;
/*
void InsertSort(RecordList L)
{
int j;
for(int i=2;i<=L.length;i++)
{
L.r[0].key=L.r[i].key;
for(j=i-1;L.r[0].key<L.r[j].key;j--)
L.r[j+1]=L.r[j];
L.r[j+1].key=L.r[0].key;
}
}*/
//直接插入排序的函数
void InsertSort(RecordList *L) //形参需要传入一个纪录表
{
int i, j;
for (i = 2; i <= L->length; i++)
{
L->r[0] = L->r[i]; //将待插纪录设为监视哨
for (j = i-1; L->r[0].key < L->r[j].key; j--)
L->r[j+1] = L->r[j]; //如果比较发现小于j位置的值就,纪录后移
L->r[j+1] = L->r[0]; //将待查纪录插到正确位置
}
}
void BubbleSort(RecordList *L)
{
RecordList t;
int j;
int flag=1;
for(int i=1;flag;i++)
{
flag=0;//重置真假
for(j=1;j<=L->length-i;j++)
if(L->r[j].key>L->r[j+1].key)
{
t.r[0]=L->r[j];
L->r[j]=L->r[j+1];
L->r[j+1]=t.r[0];
flag=1;
}
}
}
int main()
{
KeyType key;
RecordList L1;
int num,i;
int j;
scanf("%d",&L1.length);
{ printf("请输入5个数:\n");
for(i=1;i<=L1.length;i++)
scanf("%d",&L1.r[i]);
}
printf("\n");
printf("请输入你要选择的排序方式(1/2):");
printf("1.直接插入法!");
printf("2.冒泡排序法!");
scanf("%d",&num);
switch(num)
{
case 1:InsertSort(&L1);
break;
case 2:BubbleSort(&L1);
break;
default:
printf("输入错误!");
}
for(i=1;i<=L1.length;i++)
{
printf("%3d",L1.r[i]);
}
}

C语言-直接排序的更多相关文章

  1. 帮初学者改代码——有多少青春可以挥霍之“c语言 多重排序”

    原文:“c语言 多重排序” 原代码: #include<stdio.h> #include<string.h> struct A { char name[100]; int g ...

  2. go语言的排序和去重

    go语言的排序: https://blog.csdn.net/u010983881/article/details/52460998 go语言去重: https://blog.csdn.net/qq_ ...

  3. C语言实现排序

    //C语言版排序#include<stdio.h> #include<stdlib.h> //冒泡排序 void bubleSort(int data[], int n); / ...

  4. go语言的排序和搜索(转载)

    http://studygolang.com/articles/1598 go语言的排序和搜索 晚上准备动手写点 go 的程序的时候,想起 go 如何排序的问题.排序 sort 是个基本的操作,当然搜 ...

  5. GO语言练习:第一个Go语言工程--排序

    1.代码 2.编译 3.运行 1.代码框架 /home/fengbo/sorter $ tree . ├── bin ├── pkg ├── readme.txt └── src ├── algori ...

  6. C语言常用排序全解(转)

    目的:重温经典排序思想,并用C语言指针实现排序算法================================================*/ /*====================== ...

  7. linux / centos 安装SQL Server 2017 设置默认语言与排序规则Chinese_PRC_CI_AS

    安装 安装很简单参照官方教程 https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-red-hat?view=sq ...

  8. go语言的排序、结构体排序

    原文:https://studygolang.com/articles/1598 晚上准备动手写点 go 的程序的时候,想起 go 如何排序的问题.排序 sort 是个基本的操作,当然搜索 searc ...

  9. [python学习] 语言基础—排序函数(sort()、sorted()、argsort()函数)

    python的内建排序函数有 sort.sorted两个. 1.基础的序列升序排序直接调用sorted()方法即可 ls = list([5, 2, 3, 1, 4]) new_ls = sorted ...

  10. c语言选择排序

    简单选择排序是经常用到的一种排序算法. 原理: 1.简单选择排序一句话概括:每次选择无序数列中最小的将其放在有序数列的最后. 2.在简单选择排序中,我们用初始化的数字int a[6]={2,5,6,3 ...

随机推荐

  1. 【机翻】RTnet – 灵活的硬实时网络框架

    目录 RTnet – 灵活的硬实时网络框架 0 摘要 1 介绍 2 基础服务 2.1 数据包管理 2.2 UDP/IP 实现 2.3 Driver Layer 2.4 应用程序接口 2.5 捕获扩展 ...

  2. [ubuntu18.04 python3.6] 清华源 CondaHTTPError: HTTP 000 CONNECTION

    问题 嫌官网源安装jupyter notebook太慢,所以尝试修改为清华源,但每次在Solving environment的时候就报错如下: 解决方法,修改conda配置信息: vim ~/.con ...

  3. 印尼医疗龙头企业Halodoc的数据平台转型之路:数据平台V1.0

    1. 摘要 数据是每项技术业务的支柱,作为一个健康医疗技术平台,Halodoc 更是如此,用户可以通过以下方式与 Halodoc 交互: 送药 与医生交谈 实验室测试 医院预约和药物 所有这些交互都会 ...

  4. django小项目,使用paramiko自动备份网络设备配置

    原来公司开发团队人员众多,有专门对接运维需求的开发人员,现在想要实现些功能可(只)以(能)自己写了-_- |   周末在家无事,用django搞个简单的功能练练手 django安装,配置 sudo p ...

  5. MyBatis 结果映射总结

    前言 结果映射指的是将数据表中的字段与实体类中的属性关联起来,这样 MyBatis 就可以根据查询到的数据来填充实体对象的属性,帮助我们完成赋值操作.其实 MyBatis 的官方文档对映射规则的讲解还 ...

  6. babel使用

    Babel转码器 Babel定义 Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转为 ES5 代码,从而在老版本的浏览器执行 Babel安装 仅需要在项目文件下安装 npm ins ...

  7. 国内GPU 厂商产品分布

    抽空理了理国内目前已知显卡厂商的各类产品(来源与各个公司产品网站),可能不全,后续会实时更新. 目前来看,显卡市场还是国外两巨头+intel 占据了绝大数的市场,intel 在igpu上深耕了很多年, ...

  8. 《回炉重造 Java 基础》——集合(容器)

    整体框架 绿色代表接口/抽象类:蓝色代表类. 主要由两大接口组成,一个是「Collection」接口,另一个是「Map」接口. 前言 以前刚开始学习「集合」的时候,由于没有好好预习,也没有学好基础知识 ...

  9. C#与SQL Server连接时,如何编写连接字符串?

    一.Windows身份验证时: String conStr = "Data Source=数据库服务器地址;Initial Catalog=数据库名称;Integrated Security ...

  10. vue面试总结-2022

    1.vue生命周期及各周期得特点 beforCreate 特点: 初始化实例,不能使用data和methods.ref 示例 beforeCreate: function () { console.g ...