XOR加密
admin | 算法 | 2014-01-07
[代替密码和换位密码]
在计算机出现前,密码学由基于字符的密码算法构成。不同的密码算法是字符之间互相代替 或者互相之间换位 ,好的密码算法是结合这两种方法,每次进行多次运算。现在的密码学变得复杂了,但原理没有改变。本质的变化是 :算法对位而不是对字母进行变换。实际上这只是字母表长度上的改变,从26个元素变为2个元素 。大多数好的密码算... [阅读全文]
C++加密解密函数及用法示例
admin | 算法 | 2013-09-17
C++
// 常量
#define C1 52845
#define C2 22719
CString Encrypt(CString S, WORD Key) // 加密函数
{
CString Result,str;
int i,j;
Result=S; // 初始化结果字符串
for(i=0; i<S.GetLength(); i++) // 依次对字符串中各字符进行操作
{
Result.SetAt(i, S.GetAt(i)^(Key>>8)); // 将密钥移位后与字... [阅读全文]
个人所得税计算
admin | 算法 | 2013-02-19
C++
#include <iostream>
using namespace std;
int main( )
{
double dSalary ,dTax =0,dNetIncome=0;
cout<<"请输入您本月的收入总额(元):";
cin>>dSalary;
if(dSalary<3500)
cout<<"您不需... [阅读全文]
快速排序(QuickSort)
admin | 算法 | 2013-02-16
快速排序(QuickSort)也是一种排序算法,对包含n个数组的输入数组,最坏情况运行时间为O(n^2)。虽然这个最坏情况运行时间比较差,但是快速排序通常是用于排序的最佳实用选择,这是因为其平均性能相当好,期望的运行时间为O(nlgn),且O(nlgn)中隐含的常数因子很小,另外它还能够进行就地排序在虚拟环境中也能很好的工作。
一、快速排序原理
... [阅读全文]
堆排序(HeapSort)
admin | 算法 | 2013-02-16
本文主要介绍堆排序算法(HeapSort),堆排序像合并排序而不像插入排序,堆排序的运行时间为O(nlgn);像插入排序而不像合并排序,它是一种原地(in place)排序算法。在任何时候,数组中只有常数个元素存储在输入数组以外,这样,堆排序就把插入排序和合并排序的优点结合起来。
堆排序还引入了另外一种算法设计... [阅读全文]
插入排序
admin | 算法 | 2013-02-16
C++
#include <iostream>
#include <algorithm>
using namespace std;
void insert(int a[], int len)
{
/*
1.从第二个开始,把第二个抽出来当临时变量,这时假设这个位置是空的
2.当左边的数据比这个临时变量大时,将左边的数值向右移动,
直到遇到左边,直到左边的数据小于这个临时变... [阅读全文]