法学
夜猫程序猿
在校大二学生,努力学习算法,争取成为别人眼中的大牛,努力学好C++,多找书看
展开
-
排序之希尔排序
void ShellSort(int* a, int n) { int gap = n; while (gap > 1) { gap = gap / 3 + 1;/*排序元素的间隔 只不过间隔不断变小*/ for (int i = 0; i < n - gap; i++) { int end = i; int tmp = a[end + gap]; while (end >= 0) {//插入排序,不过是对间隔为gap的几个元素进行插入排序.原创 2022-02-22 14:22:01 · 159 阅读 · 0 评论 -
排序之冒泡排序
本人是一名普通大学生用这个平台记录学习过程冒泡排序(Bubble sort)是一种非常直观的排序算法,核心内容是在一次次的遍历的过程中,一次比较前后两个数据,如果他们的顺序错误就交换两个数据,这样最大或最小的元素就会浮到顶端,冒泡排序也因此而得名。下面通过动图来看过程(从网上借鉴的),其实学算法就是要多画图理解void BubbleSort(int *a,int len){ for(int i=0;i<len-1;i++) { for(int j=0原创 2021-11-26 10:10:44 · 570 阅读 · 0 评论 -
排序之插入排序
插入排序插入排序是指在待排序的元素中,注意前面n-1(其中n>=2)个数已经是排好顺序的,现将第n个数插到前面已经排好的序列中,然后找到合适自己的位置,使得插入第n个数的这个序列也是排好顺序的,这种方法被称为称为插入排序 。插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理非常容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。动图展示通过这张图应该很容易理解插入排序的过程void Insert(int* a, int n){ for (int i...原创 2021-11-30 09:02:51 · 82 阅读 · 0 评论 -
利用分治法--求快速幂取余运算(洛谷P1226)
P1226 【模板】快速幂||取余运算题目描述给你三个整数 b,p,k,求 b^p mod k输入格式输入只有一行三个整数,分别代表 b,p,k输出格式输出一行一个字符串 b^p mod k=s,其中 b, p, k 分别为题目给定的值, s 为运算结果。输入2 10 9输出2^10 mod 9=7说明/提示2^10 = 10242 1024 mod 9=7数据规模与约定对于 100%100% 的数据,保证 0 <= b,p < 2^31, 1 &l原创 2022-04-18 21:10:06 · 522 阅读 · 2 评论 -
轮转数组--极简代码
追求代码的简洁与美观原创 2022-04-21 21:50:11 · 113 阅读 · 0 评论 -
每日一题---238,除自身以外数组的乘积(Leetcode)
题目链接Leetcode.238题目描述给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。请不要使用除法,且在 O(n) 时间复杂度内完成此题。示例 1:输入:nums = [1,2,3,4]输出:[24,12,8,6]示例 2:输入:nums = [-1,1,0,-3,3]输出原创 2022-04-23 14:46:27 · 1272 阅读 · 0 评论