归并 快排 快速幂

/*
归并排序:不断将数组切分为两部分递归切分直到数组长度为1,之后逐渐有序合并
*/
#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;//归并 小-->大
void Merge(int a[], int s, int m, int e, int tmp[]) {int iter = s;int it1 = s, it2 = m+1;while(it1 <=m && it2 <= e) {if(a[it1] < a[it2]) tmp[iter++] = a[it1++];else tmp[iter++] = a[it2++];}while(it1 <= m)tmp[iter++] = a[it1++];while(it2 <= e)tmp[iter++] = a[it2++];for(int i=s; i<=e; ++i) {a[i] = tmp[i];}return;
}
void MergeSort(int a[], int s, int e, int tmp[]) {if(s < e) {int m = s + (e-s)/2;MergeSort(a, s, m, tmp);MergeSort(a, m+1, e, tmp);Merge(a, s, m, e, tmp);}return;
}
int a[] = {13, 12, 23, 5, 2, 34, 11, 34, 13};
int tmp[100];
int main() {int size = sizeof(a) / sizeof(int);MergeSort(a, 0, size-1, tmp);for(int i=0; i<size; ++i)printf("%d ", a[i]);
}

 

/*快排:主要思想,寻找切分元素之后两边分治处理
*/
#include <iostream>
#include <cstdio>
using namespace std;
const int maxn = 1e5 + 10;
int num[maxn];
int n;
inline void quik_sort(int s, int e) 
{//mid为切分元素int mid = num[s+(e-s)/2];// i 左侧指针,找到第一个不小于切分元素mid的数,i指向>=mid// j 右侧指针,找到第一个不大于切分元素mid的数,j指向<=midint i = s, j = e;while(i <= j) {while(num[i] < mid) i += 1;while(num[j] > mid) j -= 1;if(j >= i) {swap(num[i], num[j]);i += 1, j -= 1;}}//跳出后j < i, 分成两部分继续if(s < j) quik_sort(s, j);if(e > i) quik_sort(i, e);return;
}
int main() {scanf("%d", &n);for(int i=1; i<=n; ++i) scanf("%d", num+i);quik_sort(1, n);for (int i = 1; i <= n; ++i){printf("%d ", num[i]);        }return 0;
}

 

#include <cstdio>
#include <iostream>
using namespace std;
int Mod ;//将指数二进制化,也可以尝试其他进制
int quick_pow(int base, int t) {int ans = 1;while(t) {if(t & 1) {ans = (ans%Mod)*(base%Mod);
       ans %= Mod;}
base = (base*base) % Mod;t >>= 1;}return ans; } int main() {int base, t;scanf("%d %d %d", &base, &t, &Mod);printf("%d^%d mod %d=%d\n", base, t, Mod, quick_pow(base, t));return 0; }

 

转载于:https://www.cnblogs.com/GorgeousBankarian/p/11243739.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/263211.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dev GridControl双击行事件

今天用到了gridcontrol这个控件,要求写一个gridview的双击事件,因为想要的效果是只双击行才出Message,用gridview的Double_Click我没实现,后来想到MouseDown,一试,很简单,首先,仍旧需要将gridview1.OptionsBehavior.Editable设为false,下面是代码: Skelta BPM.NET&#xff08…

自己动手编写一个ajax extender

该扩展的功能有以下几点&#xff1a;1、当鼠标移到某个按钮上时&#xff0c;该按钮显示一个Css样式&#xff1b;2、当鼠标移开该按钮时&#xff0c;该按钮显示另外一个Css样式&#xff1b;3、当鼠标点击该按钮时&#xff0c;执行一个用户自己定义的javascript函数&#xff1b; …

jQuery:表格的奇偶行变色,jquery实例之表格隔一行

jQuery:表格的奇偶行变色<html> <head> <title>表格变色</title> <style type"text/css"> .odd{background:#ffffee;} .even{background:#fff38f;} .first{background:red;} .last{background:blue;}…

分金币 Uva 11300

题意 给定N个人成环状坐&#xff0c;每个人初始分配Ai的金币&#xff0c;金币总数可以被N整除&#xff0c;每个人可以给左右相邻的人一定数量的金币使得最终每个人的金币数量相同&#xff0c;求转移数量最小的方案所转移的总金币数量。 N<1000000 对每组数据保证输出在INT64…

LeetCode—<搜索与回溯专项>剑指 Offer 55 - I、55 - II、64、68 - I、68 - II

剑指 Offer 55 - I. 二叉树的深度、55 - II. 平衡二叉树、64. 求12…n、68 - I. 二叉搜索树的最近公共祖先、68 - II. 二叉树的最近公共祖先 题目描述&#xff1a; [55 - I] [55 - II] [64] 求 12…n &#xff0c;要求不能使用乘除法、for、while、if、else、switch、case等关…

Tip:使用Extender的ResolveControlID事件

1、分析 不知道大家在使用ASP.NET AJAX Control Toolkit里的各个Extender控件时&#xff0c;有没有接触过ResolveControlID事件&#xff1f;这个事件在官方也只用了很少的笔墨来描述。的确&#xff0c;这个事件不太常用&#xff0c;看看ASP.NET AJAX的演示站点&#xff0c;根本…

我常用的shell命令

我常用的shell命令tar:tar jxvf filename.tar.bz2tar xvf filename.tartar cvf filename.tar file tar cjvf filename.tar.bz2 file wc:ls -l | wc -ltr:ls -l | tr a-z A-Zgrep:ls -l | grep ^dls -l | grep -n ^dls -l | grep -v ^decho "theaaaathebbbbthe | grep \<…

Git常用命令整理

git init # 初始化本地git仓库&#xff08;创建新仓库&#xff09;git config --global user.name "xxx" # 配置用户名git config --global user.email "xxxxxx.com" # 配置邮件git config --global color.ui true # git status等命令自动着色git config -…

LeetCode—<分治专项>剑指 Offer 07、16、33

剑指 Offer 07. 重建二叉树、16. 数值的整数次方、33. 二叉搜索树的后序遍历序列 题目描述&#xff1a; [07] 输入某二叉树的前序遍历和中序遍历的结果&#xff0c;请构建该二叉树并返回其根节点。 假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 [16] 实现 pow(x,…

唱歌的方法与技巧[收集]

Method 1我想很多人都有些嗓子限制,就认为自己不适合唱歌等...其实绝大多数人,都是可以唱的非常棒的,就算嗓子很不好,也可以通过自我的锻炼逐渐培养出来的.其实唱歌到达一定阶段,可以说,逐渐的少用嗓子.有些人唱歌时,用手压着嗓子,不让嗓子向上,其实是有原因的.但这并不是正确的…

练习(00008)

参考&#xff1a;第7章 JavaScript.doc/第7章 JavaScript.文件夹转载于:https://www.cnblogs.com/lesvies/archive/2011/09/19/2181495.html

《算法导论》——MergeSort

前言&#xff1a; 在今后的日子里&#xff0c;我将持续更新博客&#xff0c;讨论《算法导论》一书中的提到的各算法的C实现。初来乍到&#xff0c;请多指教。 今日主题&#xff1a;   今天讨论《算法导论》第二章算法基础中的归并排序算法。下面是该算法的代码Merge.h&#x…

MySQL 常用运算符

1.算数运算符 加 mysql> select 12; 减 mysql> select 2-1; 乘 mysql> select 2*3; 除 mysql> select 5/3; 商 mysql> SELECT 5 DIV 2; 模 mysql> select 5%2,mod(5,2); 2.比较运算符 等于 mysql> select 10,11,nullnull; 不等于 mysql> select 1<&…

react 路由v6

这里是区别&#xff1a;V5 vs V6 这里是官网&#xff1a;可以查看更多高级属性 基本使用&#xff1a; 1、配置文件 src/routes/index import React from "react";const Home React.lazy(() > import("../Pages/Home")); const About React.lazy(()…

LeetCode—<位运算专项>剑指 Offer 15、56 - I、56 - II、65

剑指 Offer 15. 二进制中1的个数、56 - I. 数组中数字出现的次数、56 - II. 数组中数字出现的次数 II、65. 不用加减乘除做加法 题目描述&#xff1a; [15] 编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表…

Asp.net2.0 学习资源(转载)

asp.net 2.0 http://beta.asp.net/QUICKSTART/aspnet/http://msdn.microsoft.com/vstudio/express/vwd/learning/default.aspxasp.net 1.0 名称&#xff1a;快速入门地址&#xff1a;http://chs.gotdotnet.com/quickstart/描述&#xff1a;本站点是微软.NET技术的快速入门网站&…

java学习笔记十一——对象转型

向上转型&#xff1a;子类对象当做父类对象来使用&#xff0c;因为子类对象拥有父类对象的所有成员&#xff0c;所以不会发生任何错误。向下转型&#xff1a;父类对象当做子类对象来使用&#xff0c;因为子类对象部分特性父类并没有&#xff0c;所以需要加强制转换符。向上转型…

LeetCode—<数学专项>剑指 Offer 14 - I、39、57 - II、62、66

剑指 Offer 14- I. 剪绳子、39. 数组中出现次数超过一半的数字、57 - II. 和为s的连续正数序列、62. 圆圈中最后剩下的数字、66. 构建乘积数组 题目描述&#xff1a; [14 - I] 给你一根长度为 n 的绳子&#xff0c;请把绳子剪成整数长度的 m 段&#xff08;m、n都是整数&#…

Win8下在Vmware11中安装使用苹果系统OS X 10.10

原文:Win8下在Vmware11中安装使用苹果系统OS X 10.10近来因为需要做 iOS 的项目&#xff0c;所以需要多花一些时间看看敲敲代码。因为自己手头上并没有 Mac&#xff08;过年为了闲的时候能玩玩游戏买了联想&#xff0c;唉&#xff09;&#xff0c;想想不能只靠每天在公司的时间…

图片滑动效果(转)

var $ function(id) {return "string" typeof id ? document.getElementById(id) : id; };function Event(e) {var oEvent document.all ? window.event : e;if (document.all) {if (oEvent.type "mouseout") {oEvent.relatedTarget oEvent.toEleme…