![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
~羽~.
只是野蛮生长
展开
-
线性表详解(附代码)
文章目录最简单的结构:线性表线性表的概念操作顺序表1、定义顺序表结构2、定义顺序表的操作3、初始化顺序表4、顺序表的长度5、添加节点6、插入节点7、删除节点8、按序号查找节点9、按照关键字查找节点10、遍历顺序表:运用实例:最简单的结构:线性表线性表有两种形式:顺序线性表链式线性表线性表的概念 由若干个数据组成的集合可以看做是一个线性表。线性表中的数据元素之间的关系是一对一,即除了第一个和最后一个元素外,其他元素都是首尾相接的。例如学生的学号组成的数据就是一个线性表。如下图:20原创 2021-05-15 21:55:39 · 2851 阅读 · 0 评论 -
常用的数学函数
常用的数字函数函数名含义abs()绝对值函数ceil(x)天花板函数:返回大于或者等于x的最小整数对于的浮点值。如ceil(-2.5)的结果是-2.0,ceil(2.6)=3。floor(x)地板函数:返回小于或者等于x的最大整数对应的浮点值。如ceil(-2.5)的结果是-3.0,ceil(2.6)=2。round(x)返回最接近x的整数对应的浮点值。如round(-2.3)的结果是-2.0,round(-2.6)的结果是-3。pow(x,y)底数是原创 2021-03-01 16:16:01 · 253 阅读 · 0 评论 -
选择排序
选择排序与数组联系简介选择排序( Selection sort)是一种简单直观的排序算法。它的工作原理是每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。选择排序算法通过选择和交换来实现排序,其排序流程如下:(1)首先从原始数组中选择最小的1个数据,将其和位于第1个位置的数据交换。(2)接着从剩下的n-1个数据中选择次小的1个元素,将其和第2个位置的数据交换(3)然后,这样不断重复,直到最后两个数据完成交换。最后,便原创 2021-02-05 21:35:30 · 119 阅读 · 0 评论 -
STL中的平衡二叉树(set)
STL中的平衡二叉树(set)之前说了multiset现在来说说set容器set的用法set 和 mulset 的区别在于容器里不能出现重复的元素a 和b 重复 <=>“a 必须排在 b 前面” 和“b 必须排在a 前面” 都不成立。set 插入元素可能不成功。(因为元素不能重复的原因,所以如果插入相同元素就会失败)set 用法示例:#include <cstdio>#include <iostream>#include <cstri原创 2021-01-04 22:06:00 · 624 阅读 · 0 评论 -
STL中的平衡二叉树(multiset)
STL中的平衡二叉树(multiset)运用场景:有时需要在大量增加,删除数据的同时,还要进行大量数据的查找希望增加数据,删除数据,查找数据都能在log(n)复杂度完成。排序+二分查找显然不可以,因加入新数据就需要重新排序可以使用“排序二叉树”数据结构存放数据,体现在STL中,就是以下四种“排序他容器”multiset set multimup mapmultiset < T > st;定义了一个multiset变量st,st里面可以存放T类型的数据,并且原创 2021-01-02 23:42:07 · 1371 阅读 · 4 评论 -
STL二分查找法
STL二分查找法用binary_search进行二分查找(用法一)在从小到打排好序的基础类型数组上进行二分查找binary_search(数组+n1,数组名+n2,值);n1和n2都是int 类型的表达式,可以包含变量如果n1=0,则+n1可以不写查找区间为下标范围为[n1,n2)的元素,下标为n2的元素不在查找区间内在该区间内查找等于”值“的元素,返回值为true(找到)或者false(没找到)等于的含义不是简单的==,真实含义是:a等于b <=> a<b 和原创 2021-01-01 23:21:07 · 881 阅读 · 0 评论 -
STL排序算法
STL排序算法STL简介STL:标准模板库。包含一些常用的算法如排序查找,还有常用的数据结构如可变长数组,链表,字典等。使用方便,效率较高要使用其中的算法,需要#include sort排序用法一:对基本数据类型的数组从小到大排序:sort(数组名+n1,数组名+n2); n1和n2都是int类型的表达式,可以包含变量。 如果n1=0,则+n1可以不写将数组中下标范围为[n1,n2)的元素从小到大排序。下标为n2的元素不在排序区间内。例如:int a[]={12,原创 2020-12-29 23:00:04 · 1209 阅读 · 0 评论 -
冒泡排序
冒泡排序简介 将整个数组分为有序和无序两个部分。前者在右,后者在左。 开始时,整个数组都是无序的。有序部分没有元素 每次都要使无序部分的最大元素移动到有序部分第一个元素的左边。移动的方法是:依次比较相邻的两个元素,如果前面的比后面的大,就交换他们的位置。这样,大的元素就像水里的气泡一样不断往上浮。移动结束有序的部分就增加了一个元素。 知道无序的部分没有元素 代码实现:void BubbleSort(int a[],int size){ for(in原创 2020-12-27 20:38:50 · 120 阅读 · 0 评论 -
插入排序
# 插入排序###### 简单介绍将整个数组分为有序和无序的两部分,有序在前,无序在后。开始有序及只有a[0],其余都是无序的每次将无序部分第一个元素取出,插入到有序部分中去。假设,插入到合适位置P,则原位置及其后面的有序元素都要后移一个位子。直到无序部分没有元素###### 代码实现:```c++void insertionSort(int a[],int size) { for (int i=1;i<size;++i)// 循环无序部分,a...原创 2020-12-26 23:54:54 · 125 阅读 · 0 评论 -
C语言指针相互赋值
C语言指针相互赋值首先要记住指针变量和其他普通变量一样,使用前不仅要定义,还要进行赋值。未经赋值的指针变量不能使用,否则将会造成系统混乱,甚至死机。指针变量的赋值只能赋予地址例如:#include <cstdio>void swap(int *p1,int *p2){int *temp; *temp=*p1;//此语句有问题,因指针变量temp定义后未具体指向,所以*temp无意义。 *p1=*p2; *p2=*temp;}int main(){原创 2020-12-22 17:04:34 · 13575 阅读 · 1 评论