C语言-直接排序
#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语言-直接排序的更多相关文章
- 帮初学者改代码——有多少青春可以挥霍之“c语言 多重排序”
原文:“c语言 多重排序” 原代码: #include<stdio.h> #include<string.h> struct A { char name[100]; int g ...
- go语言的排序和去重
go语言的排序: https://blog.csdn.net/u010983881/article/details/52460998 go语言去重: https://blog.csdn.net/qq_ ...
- C语言实现排序
//C语言版排序#include<stdio.h> #include<stdlib.h> //冒泡排序 void bubleSort(int data[], int n); / ...
- go语言的排序和搜索(转载)
http://studygolang.com/articles/1598 go语言的排序和搜索 晚上准备动手写点 go 的程序的时候,想起 go 如何排序的问题.排序 sort 是个基本的操作,当然搜 ...
- GO语言练习:第一个Go语言工程--排序
1.代码 2.编译 3.运行 1.代码框架 /home/fengbo/sorter $ tree . ├── bin ├── pkg ├── readme.txt └── src ├── algori ...
- C语言常用排序全解(转)
目的:重温经典排序思想,并用C语言指针实现排序算法================================================*/ /*====================== ...
- linux / centos 安装SQL Server 2017 设置默认语言与排序规则Chinese_PRC_CI_AS
安装 安装很简单参照官方教程 https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-red-hat?view=sq ...
- go语言的排序、结构体排序
原文:https://studygolang.com/articles/1598 晚上准备动手写点 go 的程序的时候,想起 go 如何排序的问题.排序 sort 是个基本的操作,当然搜索 searc ...
- [python学习] 语言基础—排序函数(sort()、sorted()、argsort()函数)
python的内建排序函数有 sort.sorted两个. 1.基础的序列升序排序直接调用sorted()方法即可 ls = list([5, 2, 3, 1, 4]) new_ls = sorted ...
- c语言选择排序
简单选择排序是经常用到的一种排序算法. 原理: 1.简单选择排序一句话概括:每次选择无序数列中最小的将其放在有序数列的最后. 2.在简单选择排序中,我们用初始化的数字int a[6]={2,5,6,3 ...
随机推荐
- [STL] deque 双端队列
- Linux-进程工具
1.进程树 pstree pstree 可以用来显示进程的父子关系,以树形结构显示 格式: pstree [OPTION] [ PID | USER ] 常用选项: -p 显示PID -T 不显示线程 ...
- 1.5 Linux中大量使用脚本语言,而不是C语言!
说到在 Linux 下的编程,很多人会想到用C语言,Linux 的内核.shell.基础命令程序,也的确是用C语言编写的,这首先证明了一点,C语言很强很通用. 到目前为止,C语言依然垄断着计算机工业中 ...
- Android 12(S) 图像显示系统 - SurfaceFlinger GPU合成/CLIENT合成方式 - 随笔1
必读: Android 12(S) 图像显示系统 - 开篇 一.前言 SurfaceFlinger中的图层选择GPU合成(CLIENT合成方式)时,会把待合成的图层Layers通过renderengi ...
- 现有教学数据库JX_DB,作业
现有教学数据库JX_DB,数据库有以下三个基本表: 学生表student,它由学号sno.姓名sname.性别sex.出生日期Bdate.所在系dept五个属性构成.其中,学号不能为空,值是唯一的: ...
- git clone指定分支
技术背景 Git是代码版本最常用的管理工具,此前也写过一篇介绍Git的基本使用的博客,而本文介绍一个可能在特定场景下能够用到的功能--直接拉取指定分支的内容. Git Clone 首先看一下如果我们按 ...
- 203. Remove Linked List Elements - LeetCode
Question 203. Remove Linked List Elements Solution 题目大意:从链表中删除给定的数 思路:遍历链表,如果该节点的值等于给的数就删除该节点,注意首节点 ...
- 遍历list集合泛型为map
public class ListAddMap { public static void main( String args[] ) { List<Map<String, Object&g ...
- 『忘了再学』Shell基础 — 25、扩展正则表达式
目录 1.扩展正则表达式说明 2.练习 (1)+和?练习 (2)|和()练习 3.注意(重点) 1.扩展正则表达式说明 熟悉正则表达式的童鞋应该很疑惑,在其他的语言中是没有扩展正则表达式说法的,在Sh ...
- sqlmap自动检测漏洞并进行渗透
使用案例靶场为上篇文章介绍的封神台---靶场 https://hack.zkaq.cn/ 提示:采用开源靶场里面的猫舍进行渗透注入,仅用于安全防范无安全侵犯 1.首先检测是否已经安装成功sqlma ...