
c++
Nana X
挣扎在推荐系统中的学渣
展开
-
排序算法——选择排序
如果有N个元素需要排序,那么首先从N个元素中找到最小的那个(称为第0小的)放在第0个位子上(和原来的第0个位子上的元素互换位置)。然后再从剩下的N-1个元素中找到最小的放在第一个位子上,然后再从剩下的N-2个元素中找到最小的放在第二个位子上·······直到所有元素都就位就位void SelectionSort(int a[],int size){ for(int i=0;i<...原创 2019-07-16 18:54:28 · 195 阅读 · 0 评论 -
C++——插入排序
将数组a分为有序的部分和无序的两个部分。前者在左边,后者在右边开始有序的部分只有a[0],其余都属于无序的部分每次取出无序部分的第一个(最左边)元素,把它加到有序部分,假设插入到合适位置p,则原p位置及其后面的有序部分元素,都向右移动一个位子,有序部分即增加了一个元素直到无序部分没有元素void InsertionSort(int a[],int size){ for(int i=1...转载 2019-07-17 17:25:45 · 222 阅读 · 0 评论 -
C++——难一点的SWAP
#include <iostream>using namespace std;void swap(//在这里填写代码int *& a,int *& b){ int * tmp = a; a = b; b = tmp;}int main(){ int a = 3,b = 5; int * pa = & a; int * pb = &...原创 2019-07-21 18:52:07 · 1490 阅读 · 2 评论 -
C++——Aggressive cows
描述Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The stalls are located along a straight line at positions x1,…,xN (0 <= xi <= 1,000,000,000).His C (2 <= C ...转载 2019-07-17 18:53:47 · 309 阅读 · 0 评论 -
C++——冒泡排序
将有序数组分为有序无序两个部分。前者在右,后者在左开始整个数组都是无序的,有序部分没有元素每次都要使无序部分的最大元素移动到有序部分第一个元素的左边移动的方法是:依次比较相邻的两个元素,如果前面的比后面的大就交换他们的位置。这样大的元素就像水里的气泡一样不断上浮。移动结束有序部分增加了一个元素。直到无序部分没有元素void BubbleSort(int a[],int size){ ...转载 2019-07-17 17:35:49 · 136 阅读 · 0 评论 -
角谷猜想
问题描述:所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。程序要求输入一个整数,将经过处理得到1的过程输出来。输入:5输出:5*3+1=1616/2=88/2=44/2=22/2=1End#include<iostr...原创 2019-07-10 19:03:05 · 325 阅读 · 0 评论 -
c++练习----输入整数n(n>2),求不大于n的全部质数
输入整数n(n>2),求不大于n的全部质数#include"iostream"using namespace std;int main(){ int n; cin>>n; cout<<2<<endl; for(int i=3;i<=n;i+=2){//每次判断i是否是质数 int k; for(k=3;k<i;k+...原创 2019-07-10 18:29:28 · 868 阅读 · 0 评论 -
C++——最大公约数和最小公倍数
#include<iostream>using namespace std;int maxnumber(int, int);int minnumber(int, int);int main() { int a, b; cin >> a >> b; //定义两个函数的方法 /*cout << "最大公约数:" << maxn...转载 2019-07-12 20:12:02 · 1015 阅读 · 0 评论 -
指针练习——MyMax
求任何数的最大值#include <iostream>using namespace std;void * MyMax(void *p,int size,int n,int (*f)(void *,void *)){ char * p1=(char *)p; for(int i=0;i<n;i++){ if(f(p1,(char *)p+size*i)<0){...原创 2019-07-15 21:15:17 · 1126 阅读 · 0 评论 -
指针练习——ForEach
#include <iostream>using namespace std;void ForEach(void * a, int width, int num,void (*f)(void *)){ for(int i = 0;i < num; ++i) f((char*)a+width*i);}void PrintSquare(void * p)...原创 2019-07-15 19:33:54 · 773 阅读 · 0 评论