当前位置: 首页 > news >正文

排序算法。

快速排序:QuickSort

选标准值,将比标准值小的放在其左侧,将比标准值大的放在其右侧,左右两部分分别重复以上操作

1.挖坑填补法

拆东墙补西墙

先把第一个数拿出来用temp储存 然后从最后面遍历 找到比temp小的放到第一个位置 然后再从前面第二个开始遍历找比temp大的放在后面的空位上 重复操作 直到end和begin在一块 然后再在temp两边分别重复操作


 

#include<stdio.h>int Find(int arr[],int nBegin,int nEnd)
{int temp = arr[nBegin];while(nBegin < nEnd){//从后向前找比标准值小的while(nEnd > nBegin){if(arr[nEnd] < temp){arr[nBegin] = arr[nEnd];nBegin++;break;}nEnd--;			 }//从前往后找比标准值大的while(nBegin < nEnd){if(arr[nBegin] > temp){arr[nEnd] = arr[nBegin];nEnd--;break;}nBegin++;} }//标准值放入arr[nBegin] = temp;return nBegin; 
}void QuickSort(int arr[],int nBegin,int nEnd)
{if(arr == NULL || nBegin >= nEnd)return;//确定标准值最终位置int nStandard;nStandard = Find(arr,nBegin,nEnd);//将数据分成两部分 分别重复以上操作QuickSort(arr,nBegin,nStandard-1);QuickSort(arr,nStandard+1,nEnd);
}void Print(int arr[],int length)
{if(arr == NULL || length <=0)return;int i;for(int i=0;i<length;i++){printf("%d ",arr[i]);}printf("\n");
}int main()
{int arr[] = {2,4,7,1,5,14,89,13,2};QuickSort(arr,0,sizeof(arr)/sizeof(arr[0])-1);Print(arr,sizeof(arr)/sizeof(arr[0]));return 0;
}

 2.区间分割法

small指向begin-1 begin从前向后遍历 遇见比end小的 就交换small+1与begin 最终将小于10的全放在一边

若 a = i++; 则等价于 a=i;i=i+1; 而 a = ++i; 则等价于 i=i+1;a=i;

#include<stdio.h>int Find(int arr[],int nBegin,int nEnd)
{int nSmall = nBegin-1;for(nBegin;nBegin < nEnd;nBegin++){if(arr[nBegin] < arr[nEnd]){if(++nSmall != nBegin){arr[nSmall] = arr[nSmall]^arr[nBegin];arr[nBegin] = arr[nSmall]^arr[nBegin];arr[nSmall] = arr[nSmall]^arr[nBegin];}}}//将标准值放入if(++nSmall != nEnd){arr[nSmall] = arr[nSmall]^arr[nEnd];arr[nEnd] = arr[nSmall]^arr[nEnd];arr[nSmall] = arr[nSmall]^arr[nEnd];}return nSmall; 
}void QuickSort(int arr[],int nBegin,int nEnd)
{if(arr == NULL || nBegin >= nEnd)return;//确定标准值最终位置int nStandard;nStandard = Find(arr,nBegin,nEnd);//将数据分成两部分 分别重复以上操作QuickSort(arr,nBegin,nStandard-1);QuickSort(arr,nStandard+1,nEnd);
}void Print(int arr[],int length)
{if(arr == NULL || length <=0)return;int i;for(int i=0;i<length;i++){printf("%d ",arr[i]);}printf("\n");
}int main()
{int arr[] = {2,4,7,1,5,14,89,13,2};QuickSort(arr,0,sizeof(arr)/sizeof(arr[0])-1);Print(arr,sizeof(arr)/sizeof(arr[0]));return 0;
} 

MergeSort: 归并排序

将多个有序数组进行合并

 

#include<stdio.h>
#include<stdlib.h>void Merge(int arr[],int nBegin,int nEnd)
{int nBegin1 = nBegin;int nEnd1 = nBegin+(nEnd-nBegin)/2;int nBegin2 = nEnd1+1;int nEnd2 = nEnd;int *pTemp =NULL;pTemp = (int*)malloc(sizeof(int)*(nEnd-nBegin+1));int i=0;//遍历两个数组while(nBegin1 <= nEnd1 && nBegin2 <= nEnd2){if(arr[nBegin2] < arr[nBegin1]){pTemp[i++] = arr[nBegin2++];}else{pTemp[i++] = arr[nBegin1++];}}//将有剩余的数组元素放置while(nBegin1 <= nEnd1){pTemp[i++] = arr[nBegin1++];}while(nBegin2 <= nEnd2){pTemp[i++] = arr[nBegin2++];}//放回for(int i=0;i<nEnd-nBegin+1;i++){arr[nBegin+i] = pTemp[i];} free(pTemp);pTemp = NULL; 	
} void MergeSort(int arr[],int nBegin,int nEnd)
{if(arr == NULL || nBegin >= nEnd)return;//分割 int nMid = nBegin + (nEnd-nBegin)/2;MergeSort(arr,nBegin,nMid);MergeSort(arr,nMid+1,nEnd);//合并Merge(arr,nBegin,nEnd); 
} void Print(int arr[],int length)
{if(arr == NULL || length <=0)return;int i;for(int i=0;i<length;i++){printf("%d ",arr[i]);}printf("\n");
}int main()
{int arr[] = {2,4,7,1,5,14,89,13,2};MergeSort(arr,0,sizeof(arr)/sizeof(arr[0])-1);Print(arr,sizeof(arr)/sizeof(arr[0]));return 0;
} 

冒泡排序:BubbleSort

相邻两个元素进行大小比较,如果前一个比后一个大,则二者发生交换

第一横:8和6比 8比6大 交换 8和3比 8比3大 交换 8和12比 没12大 不动 12和1比 比12大交换 12和7比 比12大交换 12没15大 不动

第二横;6和3比。。。。。。。

#include<stdio.h>void BubbleSort(int arr[],int length)
{if(arr == NULL || length<=0)return;int i;int j;for(int i=0;i<length-1;i++)              //总排n-1回 {for(int j=0;j<length-i-1;j++)        //每次固定一个大的,然后俩俩比较再-1 {if(arr[j] > arr[j+1]){arr[j] = arr[j]^arr[j+1];arr[j+1] = arr[j]^arr[j+1];arr[j] = arr[j]^arr[j+1];}}}
}void Print(int arr[],int length)
{if(arr == NULL || length <=0)return;int i;for(int i=0;i<length;i++){printf("%d ",arr[i]);}printf("\n");
}int main()
{int arr[] = {2,4,7,1,5,14,89,13,2};BubbleSort(arr,sizeof(arr)/sizeof(arr[0]));Print(arr,sizeof(arr)/sizeof(arr[0]));return 0;
}

堆排序:HeapSort

先创建一个初始堆,从下到上调节父亲节点,使得每个父亲节点的值比两个孩子大,最大值就窜到最上面了,接着交换第一和最后,拿掉最后面的最大值,重复调整堆顶,拿出每个最大值

调整操作 先把两个孩子比一下取最大值跟爹比 要比爹大就交换 然后交换下来的爹也得看看他的儿子比不比他大

#include<stdio.h>#define LEFT (2*nRootID+1)
#define RIGHT (2*nRootID+2)void Adjust(int arr[],int length,int nRootID)
{int MAX;for(MAX = LEFT;MAX < length;MAX = LEFT){//两个孩子if(RIGHT < length){if(arr[MAX] < arr[RIGHT]){MAX = RIGHT;}}//比较大小if(arr[nRootID] < arr[MAX]){//交换arr[nRootID] = arr[nRootID]^arr[MAX];arr[MAX] = arr[nRootID]^arr[MAX];arr[nRootID] = arr[nRootID]^arr[MAX];nRootID = MAX;}else{break;} }
}void HeapSort(int arr[],int length)
{if(arr == NULL || length <=0)return;//建初始堆int i;for(i = length/2-1;i>=0;i--){Adjust(arr,length,i);}//排序for(i = length-1;i>0;i--){//交换arr[0] = arr[i]^arr[0];arr[i] = arr[i]^arr[0];arr[0] = arr[i]^arr[0];//调整堆顶Adjust(arr,i,0);} 
}void Print(int arr[],int length)
{if(arr == NULL || length <=0)return;int i;for(int i=0;i<length;i++){printf("%d ",arr[i]);}printf("\n");
}int main()
{int arr[] = {2,4,7,1,5,14,89,13,2};HeapSort(arr,sizeof(arr)/sizeof(arr[0]));Print(arr,sizeof(arr)/sizeof(arr[0]));return 0;
} 

桶排序:BucketSort

数据分组,各组之内进行排序

#include<stdio.h>
#include<stdlib.h>
#include<string.h>typedef struct node
{int value;struct node *pNext;
}Bucket;void Sort(Bucket *pHead)
{if(pHead == NULL || pHead->pNext == NULL)return;Bucket *pi = NULL;Bucket *pj = NULL;pi = pHead;while(pi->pNext != NULL)          // n-1趟 {pj = pHead;                   // 每次遍历从表头开始  while(pj->pNext != NULL)      // j和j的下一个进行比较 保证下一个有东西 {if(pj->value > pj->pNext->value){pj->value = pj->value^ pj->pNext->value;pj->pNext->value = pj->value^ pj->pNext->value;pj->value = pj->value^ pj->pNext->value;}pj = pj->pNext;           // j++ }pi = pi->pNext;               // i++ 减少趟数 }	
}void BucketSort(int arr[],int length)
{if(arr == NULL || length <=0)return;//1.最大值 最小值int nMin = arr[0];int nMax = arr[0];int i;for(int i=1;i<length;i++){if(arr[i] < nMin){nMin = arr[i];}if(arr[i] > nMax){nMax = arr[i];}}//2.位数int nCount = 1;int nNum = nMax;while(nNum){nNum/=10;nCount*=10;}nCount/=10;              //863变100  23变10 //3.表头int nMinIndex = nMin/nCount;int nMaxIndex = nMax/nCount;Bucket **pBucket = NULL;pBucket = (Bucket**)malloc(sizeof(Bucket*)*(nMaxIndex-nMinIndex+1));memset(pBucket,0,sizeof(Bucket*)*(nMaxIndex-nMinIndex+1));//4.元素入桶Bucket *pTemp = NULL;for(int i=0;i<length;i++){nNum = arr[i]/nCount-nMinIndex;pTemp = (Bucket*)malloc(sizeof(Bucket));pTemp->value = arr[i];pTemp->pNext = pBucket[nNum];pBucket[nNum] = pTemp; }//5.各桶之间元素排序for(int i=0;i<nMaxIndex-nMinIndex+1;i++){Sort(pBucket[i]);}//6.放回nNum=0;for(int i=0;i<nMaxIndex-nMinIndex+1;i++){pTemp = pBucket[i];while(pTemp){arr[nNum] = pTemp->value;nNum++;pTemp = pTemp->pNext;} }//7.释放Bucket *pDel = NULL;for(int i=0;i<nMaxIndex-nMinIndex+1;i++){pTemp = pBucket[i];while(pTemp){pDel = pTemp;pTemp = pTemp->pNext;free(pDel);pDel = NULL;}}free(pBucket);pBucket = NULL; 
}void Print(int arr[],int length)
{if(arr == NULL || length <=0)return;int i;for(int i=0;i<length;i++){printf("%d ",arr[i]);}printf("\n");
}int main()
{int arr[] = {201,405,743,165,589,140,989,193,288};BucketSort(arr,sizeof(arr)/sizeof(arr[0]));Print(arr,sizeof(arr)/sizeof(arr[0]));return 0;
} 

选择排序:SelectSort

找最大值放到最后/最小值放在最前面

6和3比3大 6和9比没九大 max=9的下标 9和1比 然后一顿比 最大放在最后

#include<stdio.h>void SelectSort(int arr[],int length)
{if(arr == NULL || length<=0)return;int i;int j;int min;for(int i=0;i<length-1;i++){min=i;for(int j=i+1;j<length;j++){if(arr[j]<arr[min]){min=j;}}//最小值放入最前面if(min!= i){arr[i]=arr[i]^arr[min];arr[min]=arr[i]^arr[min];arr[i]=arr[i]^arr[min];} }
}void Print(int arr[],int length)
{if(arr == NULL || length <=0)return;int i;for(int i=0;i<length;i++){printf("%d ",arr[i]);}printf("\n");
}int main()
{int arr[] = {2,4,7,1,5,14,89,13,2};SelectSort(arr,sizeof(arr)/sizeof(arr[0]));Print(arr,sizeof(arr)/sizeof(arr[0]));return 0;
}

插入排序:InsertSort

将待排序数据分成两部分,一部分有序,一部分无序,将无序元素依次插入到有序中去完成排序

#include<stdio.h>void InsertSort(int arr[],int length)
{if(arr == NULL || length <=0)return;int i;    //无序的第一个int j;    //有序的最后一个int temp;for(int i=1;i<length;i++){j=i-1;temp=arr[i];  //无序的第一个元素while(j>=0 && temp<arr[j]){arr[j+1] = arr[j];j--;}arr[j+1]=temp; } 
}void Print(int arr[],int length)
{if(arr == NULL || length <=0)return;int i;for(int i=0;i<length;i++){printf("%d ",arr[i]);}printf("\n");
}int main()
{int arr[] = {2,4,7,1,5,14,89,13,2};InsertSort(arr,sizeof(arr)/sizeof(arr[0]));Print(arr,sizeof(arr)/sizeof(arr[0]));return 0;
}

希尔排序:ShellSort

将数据分组,各组之内插入排序,比原有插入排序更快,适合大量数据,不常用。

 

计数排序:CountingSort

核心思想:基于非比较的排序

1.找最大值和最小值

2.计数

3.排序

#include<stdio.h>
#include<stdlib.h>
#include<string.h>   //memsetvoid CountingSort(int arr[],int length)
{if(arr == NULL || length <=0)return;int i;int min = arr[0];int max = arr[0];//最大值最小值查找for(int i=1;i<length;i++){if(arr[i]<min){min=arr[i];}if(arr[i]>max){max=arr[i];} }//计数空间int *pCount=NULL;pCount=(int*)malloc(sizeof(int)*(max-min+1));memset(pCount,0,sizeof(int)*(max-min+1));//计数for(i=0;i<length;i++){pCount[arr[i]-min]++;}//名次for(int i=1;i<max-min+1;i++){pCount[i]=pCount[i]+pCount[i-1];}//排序int *pNew = (int*)malloc(sizeof(int)*length);for(i=length-1;i>=0;i--){pNew[pCount[arr[i]-min]-1]=arr[i];pCount[arr[i]-min]--;}//放回原数组for(int i=0;i<length;i++){arr[i]=pNew[i];}free(pNew);pNew=NULL;free(pCount);pCount=NULL; 
}
void Print(int arr[],int length)
{if(arr == NULL || length <=0)return;int i;for(int i=0;i<length;i++){printf("%d ",arr[i]);}printf("\n");
}int main()
{int arr[] = {2,4,7,1,5,14,89,13,2};CountingSort(arr,sizeof(arr)/sizeof(arr[0]));Print(arr,sizeof(arr)/sizeof(arr[0]));return 0;
}

基数排序:RadixSort

LSD:低位优先

MSD:高位优先

#include<stdio.h>
#include<stdlib.h>
#include<string.h>typedef struct node
{int value;struct node *pNext;
}Radix;void RadixSort(int arr[],int length)
{if(arr == NULL || length <= 0)return;//找最大值int nMax = arr[0];int i;for(int i=1;i<length;i++) {if(arr[i] > nMax){nMax = arr[i];}}//计算最大值位数int nCount = 0;while(nMax){nMax/=10;nCount++;}//按位处理int nLoopTimes;int nbase = 1;//表头 Radix **pRadix = NULL;pRadix = (Radix**)malloc(sizeof(Radix*)*10);memset(pRadix,0,sizeof(Radix*)*10);for(nLoopTimes = 1;nLoopTimes<=nCount;nLoopTimes++){i = nLoopTimes;while(i>1){nbase*=10;i--;}//数据入组Radix *pTemp = NULL;for(i = 0;i<length;i++){pTemp = (Radix*)malloc(sizeof(Radix));pTemp->value = arr[i];pTemp->pNext = NULL;//尾添加if(pRadix[arr[i]/nbase%10] == NULL){pRadix[arr[i]/nbase%10] = pTemp;}else{Radix *pNode = pRadix[arr[i]/nbase%10];while(pNode->pNext){pNode = pNode->pNext;}pNode->pNext = pTemp;}}//放回 int j=0;for(i=0;i<10;i++){pTemp = pRadix[i];while(pTemp){arr[j]=pTemp->value;pTemp = pTemp->pNext;j++;}} //释放Radix *pDel = NULL;for(int i=0;i<10;i++){pTemp = pRadix[i];while(pTemp){pDel = pTemp;pTemp = pTemp->pNext;free(pDel);pDel = NULL;}}//清空memset(pRadix,0,sizeof(Radix*)*10); 	 } free(pRadix);pRadix = NULL;
}void Print(int arr[],int length)
{if(arr == NULL || length <=0)return;int i;for(int i=0;i<length;i++){printf("%d ",arr[i]);}printf("\n");
}int main()
{int arr[] = {53, 3, 542, 748, 14, 214, 154, 63, 616};RadixSort(arr,sizeof(arr)/sizeof(arr[0]));Print(arr,sizeof(arr)/sizeof(arr[0]));return 0;
} 

相关文章:

排序算法。

快速排序&#xff1a;QuickSort 选标准值&#xff0c;将比标准值小的放在其左侧&#xff0c;将比标准值大的放在其右侧&#xff0c;左右两部分分别重复以上操作 1.挖坑填补法 拆东墙补西墙 先把第一个数拿出来用temp储存 然后从最后面遍历 找到比temp小的放到第一个位置 然后…...

告别 “屎山” 代码,务必掌握这14 个 SpringBoot 优化小妙招

插&#xff1a; AI时代&#xff0c;程序员或多或少要了解些人工智能&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家(前言 – 人工智能教程 ) 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家…...

测量无人船作业流程是怎样的?

在一些特殊水域测量作业中&#xff0c;使用有人船进行测量时受阻较多&#xff0c;而采用无人测量船则效率就非常高了&#xff0c;它是解决复杂水域测量问题最直接最有效的方式。那么&#xff0c;测量无人船作业流程是怎样的&#xff1f;下面就让小编来为大家简单介绍一下&#…...

四川赤橙宏海商务信息咨询有限公司抖音开店靠谱吗?

在数字化浪潮席卷全球的今天&#xff0c;电商行业正以前所未有的速度发展。而在这个大潮中&#xff0c;四川赤橙宏海商务信息咨询有限公司凭借其专业的团队和前瞻性的战略眼光&#xff0c;专注于抖音电商服务&#xff0c;为广大商家提供了一站式解决方案&#xff0c;成为了行业…...

解决ssh: connect to host IP port 22: Connection timed out报错(scp传文件指定端口)

错误消息 ssh: connect to host IP port 22: Connection timed out 指出 SSH 客户端尝试连接到指定的 IP 地址和端口号&#xff08;默认 SSH 端口是 22&#xff09;&#xff0c;但是连接超时了。这意味着客户端没有在预定时间内收到来自服务器的响应。 可能的原因 SSH 服务未…...

【笔记】echarts图表的缩放和鼠标滚动冲突的处理解决方案

解决方案不是很好&#xff0c;来源于github的issue&#xff0c;官方提供了&#xff0c;组合键触发缩放的功能。 https://github.com/apache/echarts/issues/5769 https://echarts.apache.org/zh/option.html#dataZoom-inside.zoomOnMouseWheel dataZoom-inside.zoomOnMouseWhe…...

代码随想录训练营Day51

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、不同的子序列二、两个字符串的删除操作三、编辑距离 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 今天是跟着代码随想录刷题的第…...

C#上位机与PLC

在工业自动化的舞台上&#xff0c;C#上位机与PLC之间的通信是一曲精妙绝伦的交响乐。今天&#xff0c;我们将一起揭开C#上位机与PLC通信的三种神秘实现方法&#xff0c;探索它们如何共同谱写出高效、稳定、灵活的工业自动化乐章。 序幕&#xff1a;通信的“前奏” 在深入了解…...

CVE-2018-8120漏洞提权:Windows 7的安全剖析与实战应用

CVE-2018-8120漏洞提权&#xff1a;Windows 7的安全剖析与实战应用 在网络安全的世界里&#xff0c;漏洞利用常常是攻击者用来获取系统控制权的捷径。2018年发现的CVE-2018-8120漏洞&#xff0c;针对Windows 7操作系统&#xff0c;提供了一个这样的途径。本文将深入分析这一漏…...

Python-正则表达式

目录 一、打开正则表达式 二、正则表达式的使用 1、限定符 &#xff08;1&#xff09;x*&#xff1a;*表示它前面的字符y 可以有0个或多个&#xff1b; &#xff08;2&#xff09;x&#xff1a;表示它前面的字符可以出现一次以上&#xff1b;&#xff08;只可以匹配多次&…...

教程:在 Kubernetes 集群上部署 WordPress 网站

WordPress 是专为每个人设计的开源软件&#xff0c;强调创建网站、博客或应用程序的可访问性、性能、安全性和易用性。WordPress 是一个基于 PHP 的内容管理系统&#xff08;CMS&#xff09;&#xff0c;使用 MySQL 作为数据存储&#xff0c;目前很多网站、电商独立站、个人博客…...

聊一聊 C# 弱引用 底层是怎么玩的

一&#xff1a;背景 1. 讲故事 最近在分析dump时&#xff0c;发现有程序的卡死和WeakReference有关&#xff0c;在以前只知道怎么用&#xff0c;但不清楚底层逻辑走向是什么样的&#xff0c;借着这个dump的契机来简单研究下。 二&#xff1a;弱引用的玩法 1. 一些基础概念 …...

蜘蛛池规矩采集优化与运用技巧 什么是蜘蛛池/SEO蜘蛛池怎么养?(蜘蛛池新手入门虚良SEO)

作为一名网络内容修改&#xff0c;我常常需求从各种网站上收集文章并转载到咱们的网站上。而在这个过程中&#xff0c;我深深感受到了蜘蛛池对我的帮助。今日&#xff0c;我就来共享一下我对蜘蛛池收集规矩的亲自感受。 归纳 本文将分9个方面具体介绍蜘蛛池收集规矩的长处和运…...

SerDes介绍以及原语使用介绍(1)OSERDESE2

文章目录 前言&#xff1a;为什么需要serdes一、OSERDESE2框图二、OSERDESE2端口信号二、OSERDESE2原语参数三、OSERDESE2时序3.1、SDR模式3.2、DDR模式3.3、DDR模式下三态传输 前言&#xff1a;为什么需要serdes 需要 SerDes&#xff08;串行器/解串器&#xff09;主要是为了…...

基于单片机和组态王的温度监控系统的设计

摘 要 : 介绍了以 MSP430 单片机为核心 , 建立基于 DS18B20 和组态王的温度采集和监控系统。主要研究了单片机和组态王的通用通讯协议。按照 KingView 提供的通信协议 , 设计组态王与单片机的通信程序 , 实现了组态王与M SP430 单片机的直接串行通讯。在中药提取装置的…...

unity 导入的模型设置讲解

咱们先讲Model这一栏 Model Scene&#xff1a;场景级属性&#xff0c;例如是否导入灯光和照相机&#xff0c;以及使用什么比例因子。 Scale Factor&#xff1a;缩放因子&#xff08;也就是模型导入后大小如果小了或者大了在这里直接改是相当于该模型的大小的&#xff0c;而且在…...

汽车 vSOC安全运营管理平台开发解决方案

汽车 vSOC 安全解决方案 一、引言 随着汽车行业的快速发展,汽车的智能化和互联化程度越来越高,汽车网络安全问题也日益凸显。汽车 vSOC(Vehicle Security Operations Center)作为汽车网络安全的重要组成部分,其作用越来越受到重视。本方案旨在提供一套可实施落地的汽车 vS…...

python 第三方库

一、什么是第三方库 python的三方库指的是&#xff0c;需要通过pip install 安装后才能使用的 python 工具 三方库有很多&#xff1a; 做web自动化测试的库&#xff1a;selenium单元测试框架&#xff1a;pytest、unittest做app自动化测试&#xff1a;Python-Appium-Client做接…...

VMware Workstation环境下,DHCP服务的安装配置,用ubuntu来测试

需求说明: 某企业信息中心计划使用IP地址17216.11.0用于虚拟网络测试,注册域名为xyz.net.cn.并将172.16.11.2作为主域名的服务器(DNS服务器)的IP地址,将172.16.11.3分配给虚拟网络测试的DHCP服务器,将172.16.11.4分配给虚拟网络测试的web服务器,将172.16.11.5分配给FTP服务器…...

CSS实现文字颜色渐变

直接上代码和效果图&#xff1a; <p class"linecolor">文字颜色渐变</p><style type"text/css">.linecolor{font-size: 30px;background-image:-webkit-linear-gradient(bottom,red,#fd8403,yellow);-webkit-background-clip:text;-web…...

《每天5分钟用Flask搭建一个管理系统》第4章:模板渲染

第4章&#xff1a;模板渲染 4.1 模板的概念和使用 模板是一种用于生成输出的方法&#xff0c;它允许您将Python代码和HTML标记混合在一起&#xff0c;从而创建动态网页。 示例代码&#xff1a;基本模板 <!-- templates/home.html --> <!DOCTYPE html> <html…...

逆向学习汇编篇:指令的操作

本节课在线学习视频&#xff08;网盘地址&#xff0c;保存后即可免费观看&#xff09;&#xff1a; ​​https://pan.quark.cn/s/660c759dea95​​ 在逆向工程中&#xff0c;深入理解汇编语言的指令操作是至关重要的。汇编指令是计算机硬件与软件之间的桥梁&#xff0c;它们直…...

VB.net实战(VSTO):VSTOwpf体验框架打包教程

如果是考虑到Wps用户较多&#xff0c;就不建议采用侧边栏的形式 只是个体验框架&#xff0c;界面未作美化&#xff0c;office的用户可以用任意一种窗体&#xff0c;喜欢那个界面就写那个界面&#xff0c;wps的侧边栏只能弹出一部分&#xff0c;每次需要的手动拖动。 打包了案例…...

Jquery 获得Form下的所有text、checkbox等表单的值

Jquery使用表单我主要是想获得某一个表单下的所有text获得checkbox的值: 可以这样写: var parameter{}; $("input[typetext]",document.forms[0]).each(function(){ alert(this.name); }); 获得所有名为hobby的选中的checkbox的值和form2下的所有text的值 function s…...

stl之string

构造函数 void test1() {string s1;//不传参cout << s1 << endl;string s2("123456");cout << s2 << endl;string s3(s2);cout << s3 << endl;string s4(s2, 1, 5);cout << s4 << endl;string s5("123456&quo…...

Vue3学习笔记<->nginx部署vue项目

安装nginx vue项目通常部署到nginx上&#xff0c;所以先安装一个nginx。为了方便安装的是windows版nginx&#xff0c;解压就能用。 项目参考上一篇文章《Vue3学习笔记&#xff1c;-&#xff1e;创建第一个vue项目》《Vue3学习笔记&#xff1c;-&#xff1e;创建第一个vue项目》…...

使用 WebGL 创建 3D 对象

WebGL Demohttps://mdn.github.io/dom-examples/webgl-examples/tutorial/sample5/index.html 现在让我们给之前的正方形添加五个面从而可以创建一个三维的立方体。最简单的方式就是通过调用方法 gl.drawElements() 使用顶点数组列表来替换之前的通过方法gl.drawArrays() 直接…...

百度地图3d区域掩膜,最常见通用的大屏地图展现形式

需求及效果 原本项目使用的是百度地图3.0,也就是2d版本的那个地图&#xff0c;客户不满意觉得不够好看&#xff0c;让把地图改成3d的&#xff0c;但是我们因为另外的系统用的都是百度地图&#xff0c;为了保持统一只能用百度地图做 经过3天的努力&#xff0c;最后我终于把这个…...

小区物业管理收费系统源码小程序

便捷、透明、智能化的新体验 一款基于FastAdminUniApp开发的一款物业收费管理小程序。包含房产管理、收费标准、家属管理、抄表管理、在线缴费、业主公告、统计报表、业主投票、可视化大屏等功能。为物业量身打造的小区收费管理系统&#xff0c;贴合物业工作场景&#xff0c;轻…...

C++实现一个简单的Qt信号槽机制

昨天写这个文章《深入探讨C的高级反射机制&#xff08;2&#xff09;&#xff1a;写个能用的反射库》的时候就在想&#xff0c;是不是也能在这套反射逻辑的基础上&#xff0c;实现一个类似Qt的信号槽机制&#xff1f; Qt信号槽机制简介 所谓的Qt的信号槽&#xff08;Signals …...

中国诗歌网个人网页/东莞seo优化推广

由于注释表明您希望使用初始化程序和initargs参数传递featureVector.在Unix类型的系统上,这将导致大量的性能提升(即使selLabel中只有1个项目),因为该值将使用os.fork基本上免费传递给子进程.否则,每次调用foo时,featureVector都将被父进程pickle,通过管道传递并由子进程进行un…...

郑州网站关键词推广/舆情网站直接打开的软件

为什么80%的码农都做不了架构师&#xff1f;>>> 一、准备 下载新版JDK&#xff1a;http://www.oracle.com/technetwork/java/javase/downloads/index.html 所有版本请戳&#xff1a;http://www.oracle.com/technetwork/java/archive-139210.html 二、安装与配置 先…...

资讯类网站怎么做/谷歌seo搜索引擎

数据库设计说明书 1引言 1.1编写目的 本文档描述了机房收费系统数据库的设计&#xff0c;提供了数据库设计的可视性以及软件支持所需的信息&#xff0c;应用于机房收费系统开发前期&#xff0c;为后期的数据库设计指引方向&#xff0c;也可以为系统程序设计提供借鉴与参照。预…...

全国网站制作公司排名/网络营销的六大特征

额的本本上两个版本不一样的XP,早就想卸载掉一个&#xff0c;最头疼的是两个XP都在C盘&#xff0c;搞的C盘好乱啊&#xff01;闲来没事就想在俺的本本上装个Linux系统&#xff0c;做了U盘启动盘后进入PE&#xff0c;就不知道怎么搞了&#xff0c;因为如果使用ghost的话&#xf…...

云端做效果图的网站/维普网论文收录查询

博客中添加思维导图 1 思维导图软件 Mind Master 2 插入已经绘制好的思维导图 将思维导图导出为图片格式&#xff0c;再使用markdown语句插入图片...

青海建设厅通报网站/seo提升关键词排名

作者简介李剑&#xff0c;携程系统研发部技术专家&#xff0c;负责Redis和Mongodb的容器化和服务化工作&#xff0c;喜欢深入分析系统疑难杂症。前言随着携程的应用大规模在生产上用容器部署&#xff0c;各种上规模的问题都慢慢浮现&#xff0c;其中比较难定位和解决的就是偶发…...