一些入门级函数
来源:互联网 发布:java swing 教程 编辑:程序博客网 时间:2024/06/08 08:48
简介
将以下文本粘贴在记事本中,命名为novice.h并放入编译器目录下的include文件夹内即可调用。欢迎补充。
索引
- 排序(升序)
- 快速排序
- 选择排序
- 插入排序
- 冒泡排序
- 打印杨辉三角(需要stdio.h)
- 十进制转R进制
- 二分查找(找不到返回-1)
- 反转字符串(需要string.h)
- 求最大公约数
- 待补充
注意事项
- oj上做题时请不要直接include这个文件,复制其中的函数即可。
代码
#ifndef NOVICE_H_INCLUDED#define NOVICE_H_INCLUDED#include <stdio.h>#include <string.h>#include <stdlib.h>void quick_sort(int s[], int l, int r) //(s[], 0, n-1) ascending order{ int i, j, x; if (l < r) { i = l; j = r; x = s[i]; while (i < j) { while(i < j && s[j] > x) j--; if(i < j) s[i++] = s[j]; while(i < j && s[i] < x) i++; if(i < j) s[j--] = s[i]; } s[i] = x; quick_sort(s, l, i-1); quick_sort(s, i+1, r); }}void sel_sort(int *num, int n) //ascending order{ int i, j, min, tmp; for (i = 0;i < n - 1; ++i){ min = i; for (j = i + 1; j < n; ++j) if (num[min] > num[j]) min = j; if (min != i){ tmp = num[min]; num[min] = num[i]; num[i] = tmp; } }}void ins_sort(int *num, int n) //ascending order{ int i, j; for (i = 1; i < n; ++i){ for (j = 0; j < i; ++j) if (num[j] > num[i]){ int tmp = num[i], k; for (k = i; k > j; --k) num[k] = num[k - 1]; num[j] = tmp; break; } }}void bubble_sort(int *num, int n) // ascending order{ int i, j; for (i = n - 1; i > 0; --i){ for (j = 0; j < i; ++j) if (num[j] > num[j + 1]){ int tmp = num[j]; num[j] = num[j + 1]; num[j + 1] = tmp; } }}void tri(int m) //Pascal Triangle{ int i,j,a[30][30]={{0}}; for (i = 0; i < m; i++) a[i][0] = 1; for (i = 1; i < m; i++) for (j = 1; j <= i; j++) a[i][j] = a[i-1][j-1] + a[i-1][j]; for (i = 0; i < m; i++){ for (j = 0; j <= i; j++){ if (j == i) printf("%d", a[i][j]); else printf("%d ", a[i][j]); } printf("\n"); }}void TentoR(int a, int b) //a(base 10) to number(base b){ int cnt,number[20]; if (a == 0) return; TentoR(a / b, b); number[cnt++] = a % b;}int bin_search(int *a, int size, int p) //ascending order{ int l = 0, r = size - 1; while (l <= r){ int mid = l + (r - l) / 2; if (p == a[mid]) return mid; else if (p > a[mid]) l = mid + 1; else r = mid - 1; } return -1;}void rev_str(char s[]) //reverse string{ int c,i,j; for (i = 0, j = strlen(s) - 1; i < j; i++, j--){ c = s [i]; s[i] = s[j]; s[j] = c; }}long gcd(long a, long b) //lcm = a * b / gcd(a, b){ return b == 0 ? a : gcd(b, a % b);}#endif // NOVICE_H_INCLUDED
阅读全文
0 0
- 一些入门级函数
- Python命令行里一些入门的函数
- 一些常见的javascript应用(入门级)
- 关于编译器的一些入门级文章
- 母函数入门级公式
- Matlab 入门级函数<一>
- 一些函数
- 一些函数
- 一些函数
- 一些函数
- 一些函数
- 一些函数
- 一些函数
- 一些函数
- 一些java入门知识
- 一些python入门代码
- j2me入门一些问题
- 一些linux入门命令
- 王禹 406130917327
- 微信小程序异步获取app.js的函数
- 二维码生成和pdf添加文件和图片
- mkv210_image.c文件详解
- java—变量的加载过程
- 一些入门级函数
- 如何通过百度指数分析用户的真实需求?
- 火狐、谷歌、IE关于document.body.scrollTop和document.documentElement.scrollTop 以及值为0的问题
- ubuntu声音设置不显示声卡设备的解决方法
- 动态添加 Redis 密码认证
- leetCode-Search Insert Position
- 初试Vuforia开发AR(V客学院知识分享)
- 游戏开发学习笔记(五)人物的移动及相机的跟随
- Linux中MySQL中文乱码解决