算法
EthanQ
这个作者很懒,什么都没留下…
展开
-
“火柴棍式”程序员面试题
今天看到一道有趣的面试题,晒一下/** * 火柴棍式 程序题 * 你只能增加或是修改其中的一个字符,请你给出三种答案。 int n = 20; for(int i = 0; i < n; i--){ printf("-"); } * @author Administrator * */public class Matchstick { public原创 2011-12-12 15:57:32 · 985 阅读 · 0 评论 -
C语言 之 素数算法
#include int main(void){ int val; int i; scanf("%d",&val); for(i=2; i<val; i++) { if(val%i == 0) { //可以被2-val之间的数整除,那么就不是素数 break; } } //如果循环完毕,i == val,说明是素数 if(i原创 2012-08-04 13:17:36 · 1164 阅读 · 0 评论 -
swap 算法
关于整形(int)不使用中间变量相信大家有常用的算法,比如1最常用的:public static void main(String[] args) {int a = 5;int b = 4;a = a^b;b = b^a;a = a^b;System.out.print(a + ":" + b); }这个是最快的其次不是很好但是可行的public static void转载 2012-08-04 09:06:26 · 1138 阅读 · 0 评论 -
C语言 ---- 快速排序算法
#include /* 关键在于:确定第一个元素的位置,左边都是比这个元素小的,右边是大的,然后 递归进行左右边 分别 确定各自第一个元素的位置 */void QuickSort(int *a, int low, int high);int FindPos(int *a, int low, int high);int main(void){ int a[6原创 2012-07-12 22:05:40 · 875 阅读 · 0 评论 -
C语言 ---- typedef
#include typedef struct Student{ int sid; char name[100]; char sex;} *PSTU,STU; //*PSTU == struct Student *; STU == struct Studentint main(void){ STU st; PSTU ps = &st; ps->sid = 88; pr原创 2012-06-30 21:56:14 · 637 阅读 · 0 评论 -
C语言 -----动态数组算法实现
#include #include struct Arr{ int * pBase; //存储的是数组第一个元素的地址 int len; //数组所能容纳的最大元素的个数 int cnt; //当前 数组有效元素的个数// int increment; //自动增长因子};void init_arr(struct Arr *, int);bool append_arr(st原创 2012-06-30 21:11:41 · 957 阅读 · 0 评论 -
C语言 ----- 链表算法实现
#include #include typedef struct Node{ int data; struct Node * pNext;}NODE,*PNODE;PNODE create_list(void);void traverse_list(PNODE);bool is_empty(PNODE pHead);int length_list(PNODE);bool原创 2012-07-01 16:38:42 · 901 阅读 · 0 评论 -
C语言 ----- 动态栈的算法实现
#include #include typedef struct Node{ int data; struct Node *pNext;}NODE, * PNODE;typedef struct Stack{ PNODE pTop; PNODE pBottom;//不变}STACK, * PSTACK;void init(PSTACK);void push(PST原创 2012-07-01 16:36:18 · 1008 阅读 · 0 评论 -
C 语言 ---- 汉诺塔算法
#include void hannuota(int n, char A, char B, char C) { /* 如果是1个盘子 直接将A柱子上的盘子从A移到C 否则 先将A柱子的上的n-1个盘子借助C移动到B 直接将A柱子上的盘子从A移动到C 最后将B柱子上的n-1个盘子借助A移动到C */ if(1==n) { printf("将编号为%d的盘子直接原创 2012-07-11 22:20:17 · 3347 阅读 · 0 评论 -
int类型 实现1到100的阶乘
public class Jiecheng { /** * 实现1...100的阶乘,使用int类型 * @param args */ public static void main(String[] args) { int n; //确保保存最终运算结果的 数组足够大 int[] a = new int[9000]; //位数 int digit = 1;原创 2012-04-20 19:26:30 · 4000 阅读 · 0 评论 -
PHP 之 冒泡排序
<?php $files = array("file11.txt","file22.txt","file1.txt","file2.txt"); function mySort($arr,$nat=false) { for($i=0;$i<count($arr);$i++) { for($j=0;$j<count($arr)-$i-1;$j++) { if($nat) {原创 2012-01-16 21:21:57 · 766 阅读 · 0 评论 -
Java实现折半查找(二分查找)的递归和非递归算法
Java二分查找实现,欢迎大家提出交流意见./***名称:BinarySearch*功能:实现了折半查找(二分查找)的递归和非递归算法.*说明:* 1、要求所查找的数组已有序,并且其中元素已实现Comparable接口,如Integer、String等.* 2、非递归查找使用search();,递归查找使用searchRecursively();**本程序仅供编程学习转载 2012-01-16 20:50:18 · 4692 阅读 · 0 评论 -
Java 之 SleepSort排序
分享一个很有创意的排序算法:sleepSort 。巧妙利用了线程的sleep(),代码如下:public class SleepSort { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int[] ints = {1,4,7原创 2011-12-26 22:22:12 · 731 阅读 · 0 评论 -
C语言 之 快速排序
#include #include /* 快速排序(quicksort)是分治法的典型例子, 它的主要思想是将一个待排序的数组以数组的某一个元素X为轴, 然后从左向右 和 X 比较 得到小于X的数,再接着从右向左 找到一个大于X的数, 两者交换, 使这个轴的左侧元素都比X大,而右侧元 素都比X小(从大到小排序)。 然后以这个X在变换后数组的位置i分为左右两个子数组,再分别进行快速排原创 2011-12-13 08:19:52 · 644 阅读 · 0 评论 -
JAVA版 之 快速排序
package com.ethan.sort.java;import java.util.Arrays;import java.util.Iterator;import java.util.LinkedList;import java.util.List;public class QuickSort { public static > List quickSort(List a原创 2011-12-13 09:38:22 · 770 阅读 · 0 评论 -
插入排序
public class InsertionSorter { public void Sort(int[] arr) { for (int i = 1; i < arr.Length; i++) { int t = arr[i]; int j =转载 2012-09-09 16:55:46 · 769 阅读 · 0 评论