一些入门级函数

来源:互联网 发布: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
原创粉丝点击