
算法
旧酒笙
这个作者很懒,什么都没留下…
展开
-
排序算法-桶排序
各种排序算法中,桶排序(Bucket sort)相对来说是最简单的一种算法,其优点是简单容易理解,其时间复杂度为O(n),但是他的空间复杂度不确定,将会占用太大的内存空间。 这里使用数组来模拟链表,耗费很多空间。在数字个数确定以及最大值情况下,#include <iostream> using namespace std; int main(){ int a [11]; fo...原创 2018-07-12 18:55:28 · 128 阅读 · 0 评论 -
字符串包含
package jiegouSuanfa;/** * 给定两个分别由字母组成的字符串A和字符串B,字符串B的长度比字符串A短 * 请问,如何最快地判断字符串B中所有字母是否都在字符串A里 * @author 97699 * */public class IncludeTest { private static String str="asdfafaafds"; private ...原创 2018-10-27 17:01:42 · 161 阅读 · 0 评论 -
旋转字符(把字符串前面的若干个字符移动到字符串的尾部)
package jiegouSuanfa;import java.util.Scanner;/** * 给定一个字符串,要求把字符串前面的若干个字符移动到字符串的尾部,如把字符串“abcdef”前面的2个字符'a'和'b'移动到字符串的尾部 * ,使得原字符串变成字符串“cdefab”。 * 请写一个函数完成此功能,要求对长度为n的字符串操作的时间复杂度为 O(n),空间复杂度为 ...原创 2018-10-27 15:28:24 · 1174 阅读 · 0 评论 -
用“埃氏筛法”求2~100以内的素数。2~100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,……依此类推,最后剩下的就是素数。
package javaxxx;/** * 用“埃氏筛法”求2~100以内的素数。2~100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,……依此类推,最后剩下的就是素数。 * @author 97699 * */public class Test { public static void main(String[] args) { int[] a...原创 2018-10-23 19:40:18 · 4092 阅读 · 0 评论 -
判断回文
package jiegouSuanfa;import java.util.Scanner;/** * 判断一个字串是否是回文 * @author 97699 * */public class PalindromeTest { public static void main(String[] args) { Scanner sc=new Scanner(System.in)...原创 2018-10-28 15:43:46 · 227 阅读 · 0 评论 -
单词翻转
package jiegouSuanfa;import java.util.Scanner;/** * 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,句子中单词以空格符隔开。 * 为简单起见,标点符号和普通字母一样处理。例如,输入“I am a student.”,则输出“student. a am I”。 * @author 97699 * */public...原创 2018-10-28 11:30:08 · 318 阅读 · 0 评论 -
字符移动
package jiegouSuanfa;import java.util.Scanner;/** * 在原字符串中把字符串尾部的m个字符移动到字符串的头部,要求:长度为n的字符串操作时间复杂度为O(n),空间复杂度为O(1)。 * 例如,原字符串为”Ilovebaofeng”,m=7,输出结果为:”baofengIlove” * @author 97699 * */pub...原创 2018-10-28 09:34:34 · 640 阅读 · 0 评论 -
排序算法---快速排序
快速排序是一种简单的算法,他的思想是在每一次排序中将需要排序的数据分为两个部分,其中一部分的所有数据比另一部分的所有数据都小,然后按照此方法对两部分数据分别进行快速排序。#include<iostream>using namespace std;int a[10];void quicksort(int left,int right){ if(left>right) retur...原创 2018-07-13 17:36:53 · 162 阅读 · 0 评论 -
冒泡排序
冒泡排序的时间复杂度为O(N * N),冒泡排序的基本思想为:每次比较两个相邻的元素,如果顺序错误就将他们交换过来。#include<iostream>using namespace std;void sort(int a[],int size){ for(int i=size-1;i>0;i--){//冒泡排序将最大的放入最后,依次放入 int maxindex=i; f...原创 2018-07-12 20:09:39 · 116 阅读 · 0 评论 -
KMP
package jiegouSuanfa;/** * KMP算法字符串匹配 * @author 97699 * */public class KMP { /** * 暴力方法 * @param lstr * @param str * @return */ public static int bl(String lstr,String str) { ch...原创 2018-10-27 23:43:53 · 129 阅读 · 0 评论