一些入门级函数
2017-11-08 12:10
60 查看
简介
将以下文本粘贴在记事本中,命名为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
相关文章推荐
- Python命令行里一些入门的函数
- php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
- 关于函数调用中参数传递的一些思考
- 前端PHP入门-019-内置函数之数学函数-很重要
- 嵌入式中断服务函数的一些特点
- MFC编程入门之九(对话框:为控件添加消息处理函数)
- C语言中操作字符串的一些函数源代码
- php里关于session的一些函数
- Python学习(一):入门篇:python中的一些数据结构
- iOS swift学习之入门详解(函数)
- ofstream ifstream 文件操作及一些有用的函数
- Greenplum入门——基础知识、安装、常用函数
- Python入门篇之函数
- 函数04 - 零基础入门学习C语言35
- GIT入门笔记(3)- git中的一些概念和原理
- php data()函数中用到的一些常量
- PHP中CURL方法curl_setopt()函数的一些参数 (转)
- C语言学习入门 (三) sizeof 函数、内存地址、数组
- C语言学习入门 (七) 变量与函数,static和extern关键字
- javascript操作dom的一些函数