代码备份

简介: 堆排序写得很烂,也可能是错的,自己看看就好了…… typedef int debug_int [50];debug_int* p;void print(int a[], int length){ for ...

堆排序

写得很烂,也可能是错的,自己看看就好了……

 

typedef int debug_int [50]; debug_int* p; void print(int a[], int length) { for (int i = 0; i< length; ++i) { cout<<a[i]<<" "; } cout<<endl; } void heapadjust(int a[], int s, int length) { int temp; int child_pos; for (int i = s; 2*i+1 < length ; i = child_pos) { child_pos = 2*i +1; if (child_pos != length - 1 && a[child_pos] < a[child_pos +1] ) { ++child_pos; } if (a[i] < a[child_pos]) { temp = a[i]; a[i] = a[child_pos]; a[child_pos] = temp; } else break; } } void heapsort(int a[], int length) { for (int i = length/2 - 1 ; i >= 0 ; --i) { heapadjust(a, i, length); print(a, length); } cout<<"************************"<<endl; for (int i = length - 1; i>0; --i) { swap(a[i], a[0]); heapadjust(a, 0, i); print(a, length); } } void main() { int a[50]; p = &a; int i = 0; while(cin>>a[i]) { ++i; } heapsort(a, i); cout<<"------------------"<<endl; print(a, i); } 

快速排序

template<class T> size_t Partition(T a[], int low, int high) { T pivotkey = a[low]; int old_high = high; int old_low = low; while(low < high) { while(low < high && a[high] >= pivotkey) --high; a[low] = a[high]; //swap(a[low], a[high]); while(low < high && a[low] <= pivotkey) ++low; a[high] = a[low]; //swap(a[low], a[high]); //if (low < high) //{ // swap(a[low], a[high]); //} } if (low <= old_high) { a[low] = pivotkey; } return low; } template<class T> void Qsort(T a[], int low, int high) { int location; if (low < high) { location = Partition(a, low, high); Qsort(a, low, location - 1); Qsort(a, location + 1, high); } } 

 

atoi

long __cdecl atol( const char *nptr ) { int c; /* current char */ long total; /* current total */ int sign; /* if '- ', then negative, otherwise positive */ /* skip whitespace */ while ( isspace((int)(unsigned char)*nptr) ) ++nptr; c = (int)(unsigned char)*nptr++; sign = c; /* save sign indication */ if (c == '- ' || c == '+ ') c = (int)(unsigned char)*nptr++; /* skip sign */ total = 0; while (isdigit(c)) { total = 10 * total + (c - '0 '); /* accumulate digit */ c = (int)(unsigned char)*nptr++; /* get next char */ } if (sign == '- ') return -total; else return total; /* return result, negated if necessary */ } int __cdecl atoi( const char *nptr ) { return (int)atol(nptr); } 

 

二分查找

int binaryfind(int a[], int n, int val) { int low = 0; int high = n - 1; if (n <= 0) { return -1; } while(low <= high) { int mid = low + (high - low)/2; if (a[mid] == val) { return mid; } else if (a[mid] > val) { high = mid -1; } else { low = mid + 1; } } return -1; } 

链表反向和合并

//定义数据结构 struct Node { Node(int i):data(i),next(0){} int data; Node* next; }; void ListReverse(Node* &p) { Node* oldhead = p->next; Node* newhead = p; if (p == NULL) { return; } newhead->next = NULL; while(oldhead) { Node* temp = oldhead->next; oldhead->next = newhead; newhead = oldhead; oldhead = temp; } p = newhead; } Node* ListMerge(Node* p1, Node* p2) { if (p1 == NULL) { return p2; } if (p2 == NULL) { return p1; } Node* head = p1; p1 = p1->next; Node* cur = head; while(p1 && p2) { if (p1->data <= p2->data) { head->next = p1; head = head->next; p1 = p1->next; } else { head->next = p2; head = head->next; p2 = p2->next; } } if (p1 != NULL) { head->next = p1; } if (p2 != NULL) { head->next = p2; } return cur; } 

判断大小端机器

int isSmallEndian() { static union u{ char c[2]; short i; }U = {0x0001}; return U.c[0]; } 

变参函数

void printInt(int n, ...) { va_list ap; va_start(ap, n); for (int i = 0; i < n; ++i) { int temp = va_arg(ap, int); cout<<temp<<' '; } va_end(ap); cout<<endl; } 

strstr

char* strstr(const char *str1, const char *str2) { char *s1, *s2; _ASSERT(str1 && str2); //空字符串是任何字符串的子串 if ('/0' == *str2){ return (char*)str1; } while (*str1) { s1 = (char*)str1; s2 = (char*)str2; while ((*s1 == *s2) && *s1 && *s2){ s1++; s2++; } //匹配成功 if ('/0' == *s2){ return (char*)str1; } str1++; } return NULL; } 

strcpy

char * strcpy (char * dst, char * src) { char * cp = dst; while( *cp++ = *src++ ) ; /* Copy src over dst */ return( dst ); } 

strcat

char * strcat (char * dst, char * src) { char * cp = dst; while( *cp ) ++cp; /* Find end of dst */ while( *cp++ = *src++ ) ; /* Copy src to end of dst */ return( dst ); } 

strcmp

int strcmp2 (const char *src, const char *dst) { int ret = 0 ; while(!(ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst) { ++src; ++dst; } if ( ret < 0 ) ret = -1 ; else if ( ret > 0 ) ret = 1 ; return( ret ); } 

统计二进制位为1的个数

//算法:统计x转化为2进制的位中为1的个数 //来源:网上 int func(int x) { int countx = 0; while(x) { countx ++; x = x&(x-1); } return countx; } int func(int x) { int countx = 0; for(int i=0;i<32;i++){ if((x>>i)&1) countx ++; } return countx; } 

相关文章
|
10月前
|
弹性计算 IDE 开发工具
ECS热门应用 | 轻松打造一套 Web IDE
使用ECS云服务器搭建网页IDE,增强编码便捷性,提升开发者体验。
ECS热门应用 | 轻松打造一套 Web IDE
|
10月前
|
安全 Java 程序员
代码救火队:try-catch-finally带你走出异常困境
代码救火队:try-catch-finally带你走出异常困境
68 0
|
8天前
|
存储 人工智能 测试技术
小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
140672 12
小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
|
15天前
|
人工智能 自然语言处理 Shell
深度评测 | 仅用3分钟,百炼调用满血版 Deepseek-r1 API,百万Token免费用,简直不要太爽。
仅用3分钟,百炼调用满血版Deepseek-r1 API,享受百万免费Token。阿里云提供零门槛、快速部署的解决方案,支持云控制台和Cloud Shell两种方式,操作简便。Deepseek-r1满血版在推理能力上表现出色,尤其擅长数学、代码和自然语言处理任务,使用过程中无卡顿,体验丝滑。结合Chatbox工具,用户可轻松掌控模型,提升工作效率。阿里云大模型服务平台百炼不仅速度快,还确保数据安全,值得信赖。
357488 54
深度评测 | 仅用3分钟,百炼调用满血版 Deepseek-r1 API,百万Token免费用,简直不要太爽。
|
7天前
|
人工智能 运维 前端开发
基于阿里百炼的DeepSeek-R1满血版模型调用【零门槛保姆级2084小游戏开发实战】
本文介绍基于阿里百炼的DeepSeek-R1满血版模型调用,提供零门槛保姆级2048小游戏开发实战。文章分为三部分:定位与核心优势、实战部署操作指南、辅助实战开发。通过详细步骤和案例展示,帮助开发者高效利用DeepSeek-R1的强大推理能力,优化游戏逻辑与视觉效果,解决官网响应延迟问题,提升开发效率和用户体验。适合企业开发者、教育行业及多模态探索者使用。
31318 15
|
11天前
|
人工智能 自然语言处理 API
快速使用 DeepSeek-R1 满血版
DeepSeek是一款基于Transformer架构的先进大语言模型,以其强大的自然语言处理能力和高效的推理速度著称。近年来,DeepSeek不断迭代,从DeepSeek-V2到参数达6710亿的DeepSeek-V3,再到性能比肩GPT-4的DeepSeek-R1,每次都带来重大技术突破。其开源策略降低了AI应用门槛,推动了AI普惠化。通过阿里云百炼调用满血版API,用户可以快速部署DeepSeek,享受高效、低成本的云端服务,最快10分钟完成部署,且提供免费token,极大简化了开发流程。
63055 15
快速使用 DeepSeek-R1 满血版
|
8天前
|
人工智能 编解码 算法
DeepSeek加持的通义灵码2.0 AI程序员实战案例:助力嵌入式开发中的算法生成革新
本文介绍了通义灵码2.0 AI程序员在嵌入式开发中的实战应用。通过安装VS Code插件并登录阿里云账号,用户可切换至DeepSeek V3模型,利用其强大的代码生成能力。实战案例中,AI程序员根据自然语言描述快速生成了C语言的base64编解码算法,包括源代码、头文件、测试代码和CMake编译脚本。即使在编译错误和需求迭代的情况下,AI程序员也能迅速分析问题并修复代码,最终成功实现功能。作者认为,通义灵码2.0显著提升了开发效率,打破了编程语言限制,是AI编程从辅助工具向工程级协同开发转变的重要标志,值得开发者广泛使用。
6816 67
DeepSeek加持的通义灵码2.0 AI程序员实战案例:助力嵌入式开发中的算法生成革新
|
13天前
|
机器学习/深度学习 人工智能 自然语言处理
快来零门槛、即刻拥有 DeepSeek-R1 满血版
随着人工智能技术的发展,DeepSeek作为一款新兴推理模型,凭借强大的技术实力和广泛的应用场景崭露头角。本文基于阿里云提供的零门槛解决方案,评测DeepSeek的部署与使用。该方案支持多模态任务,涵盖文本生成、代码补全等,融合NLP、IR和ML技术,提供快速实现AI应用的便利。用户无需编码,最快5分钟、最低0元即可部署DeepSeek模型。阿里云还提供100万免费Token,适合预算有限的个人或小型团队试用。通过Chatbox客户端配置API,用户可轻松体验智能交互功能,如数学提问和代码书写等。
19517 5
|
17天前
|
人工智能 API 网络安全
用DeepSeek,就在阿里云!四种方式助您快速使用 DeepSeek-R1 满血版!更有内部实战指导!
DeepSeek自发布以来,凭借卓越的技术性能和开源策略迅速吸引了全球关注。DeepSeek-R1作为系列中的佼佼者,在多个基准测试中超越现有顶尖模型,展现了强大的推理能力。然而,由于其爆火及受到黑客攻击,官网使用受限,影响用户体验。为解决这一问题,阿里云提供了多种解决方案。
34718 42
|
11天前
|
人工智能 算法 Java
零门槛、百万token免费用,即刻拥有DeepSeek-R1满血版,还有实践落地调用场景等你来看
DeepSeek 是热门的推理模型,能在少量标注数据下显著提升推理能力,尤其擅长数学、代码和自然语言等复杂任务。本文涵盖四种部署方案,可以让你快速体验云上调用 DeepSeek-R1 满血版的 API 及部署各尺寸模型的方式,无需编码,最快 5 分钟、最低 0 元即可实现