冒泡排序
#include<bits/stdc++.h> using namespace std; int main() { int a[100010]; int n; cin>>n; for(int i=0;i<n;i++) { cin>>a[i]; } for(int i=0;i<n-1;i++)//只需要进行n-1次操…
桶排
#include<bits/stdc++.h> using namespace std; int main() { int a[100010]; int n,b; int c=0; cin>>n; for(int i=0;i<n;i++) { cin>>b; a[b]++; if(c<=b) { c=b; } } …
thumbnail
关于printf的使用
  printf()的作用是将参数文本输出到屏幕。它名字里面的f 代表format格式化),表示可以定制输出文本信息。 这是printf最简单的输出功能 %d代表输出类型简单做一个补充 \n表示换行 printf可以设置换行 宽度 显示小数位数 宽度 前面的空格就是宽度 当然也可以放在后面 小数位数
thumbnail
高精度减法
#include <stdio.h> #include <string.h> void DigitReverse(char arr[])//反转字符串,以便后续计算 { int length = (int)strlen(arr); for (int i = 0; i < length / 2; i++) { i…
高精度加法
这个博主有点懒 直接敲代码了 #include<stdio.h> #include<string.h> void daoxu(char arr[]) { int length=(int)strlen(arr); for(int i=0;i<length/2;i++) { int temp=arr[i]; arr&#…
thumbnail
归并排序
定义: 归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。 算法思路:归并排序算法有两个基本的操作,一个是分,也就是把原数组划分成两个子数组的过程。另一个是治,它将…
thumbnail
逆序数
要想求逆序数首先要知道什么是逆序数 逆序数: 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。 举个例子: 标准列是1 2 3 4 5 那么 5 4 3 2 1 的逆序数算法: 看第二个,4之前有一个5,在标准列中5在4的后面,所以记1个 类似的, 第三个…
thumbnail
快速排序
之前那个写错了 思路也变了 这个不想写了 直接敲代码了 #include<stdio.h> int n; int a[100010]; void swap(int* p1,int* p2)/交换两数的值 { int temp=*p1; *p1=*p2; *p2=temp; } void quick(int l,int r)//快…
thumbnail
快速排序
首先我们要确定一个基准数(一般以数组的第一个数作为基准数) 然后我们需要确定一个首和尾 我们以黄色方框中的数作为基准数 i为首 j为尾 这里我们先移动j如果j>基准数那我们就j-- 如果j<基准数就i++ 当i<基准数时i++ 所以当i移动到7时 j与i交换 这时j==7>基准数 所以j-- 当移动到4时j<基准数所以…