±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚcnblogs£¬±¾ÎÄÖ÷Òª½éÉÜÁËjavaÖеÄÁ´±í¡¢¶þ²æÊ÷ÒÔ¼°Ã°ÅÝÅÅÐò¡¢¿ìËÙÅÅÐòµÈ¼¸ÖÖÅÅÐò·½·¨£¬Ï£Íû¶Ô´ó¼ÒÄÜÓÐËù°ïÖú¡£ |
|
ÕûÀíһϳ£ÓõÄÓÖ»ù´¡µÄËã·¨¡£ÓÉÓÚÆ½Ê±µÄÏîÄ¿±È½Ï¼òµ¥£¬ºÜÉÙÓõ½Ëã·¨£¬µ«¹¤×÷²»Ö»ÊÇÑÛǰµÄ¹¶ÇÒ£¬»¹ÓÐÊ«ºÍÔ¶·½¡£
1.Á´±í
Á´±íÓÃÀ´´æ´¢Êý¾Ý£¬ÓÉһϵÁеĽáµã×é³É¡£ÕâЩ½áµãµÄÎïÀíµØÖ·²»Ò»¶¨ÊÇÁ¬ÐøµÄ£¬¼´¿ÉÄÜÁ¬Ðø£¬Ò²¿ÉÄܲ»Á¬Ðø£¬µ«Á´±íÀïµÄ½áµãÊÇÓÐÐòµÄ¡£Ò»¸ö½áµãÓÉÊý¾ÝµÄÖµºÍÏÂÒ»¸öÊý¾ÝµÄµØÖ·×é³É¡£Ò»¸öÁ´±íÄÚµÄÊý¾ÝÀàÐÍ¿ÉÒÔÊǶàÖÖ¶àÑùµÄ¡£Êý×éÒ²ÊÇÓÃÀ´´æ´¢Êý¾ÝµÄ£¬ÓëÁ´±íÏà±È£¬ÐèÒª³õʼ»¯Ê±È·¶¨³¤¶È¡£Ò»¸öÊý×éÄÚµÄÊý¾Ý¶¼ÊÇͬһÀàÐÍ¡£ÔÚJavaÖУ¬ArrayListÊÇͨ¹ýÊý×éʵÏÖ£¬¶øLinkedListÔòͨ¹ýÁ´±íʵÏÖ¡£Ò»¸ö¼òµ¥µÄÁ´±íÀàÈçÏ£º
public class
Node{
private Object data;
private Node next;
public Node(Object data){
this.data = data;
}
//Ê¡ÂÔset¡¢get·½·¨
} |
2.¶þ²æÊ÷
¶þ²æÊ÷ÊÇn(n>=0)¸ö½áµãµÄÓÐÐò¼¯ºÏ¡£Ã¿¸ö½áµã×î¶àÓÐ2¸ö×ӽڵ㣬¼´×ó½áµãºÍÓÒ½áµã£¬ÇÒ×óÓÒ½áµã˳Ðò²»Äܸü¸Ä¡£
µ±n=0ʱ£¬Îª¿Õ¶þ²æÊ÷£»µ±n=1ʱ£¬ÎªÖ»ÓÐÒ»¸ö¸ù¶þ²æÊ÷¡£
public class
BinTree {
private BinTree lChild;//×ó½áµã
private BinTree rChild;//ÓÒ½áµã
private Object data; //Êý¾ÝÓò
public BinTree getlChild() {
return lChild;
}
public void setlChild(BinTree lChild) {
this.lChild = lChild;
}
public BinTree getrChild() {
return rChild;
}
public void setrChild(BinTree rChild) {
this.rChild = rChild;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
} |
3.ÅÅÐò
£¨1£©Ã°ÅÝÅÅÐò
ÖØ¸´µØ×߷ùýÒªÅÅÐòµÄÊýÁУ¬Ò»´Î±È½ÏÁ½¸öÔªËØ£¬Èç¹ûËûÃǵÄ˳Ðò´íÎó¾Í°ÑËûÃǽ»»»¹ýÀ´¡£×ß·ÃÊýÁеŤ×÷ÊÇÖØ¸´µØ½øÐÐÖ±µ½Ã»ÓÐÔÙÐèÒª½»»»£¬Ò²¾ÍÊÇ˵¸ÃÊýÁÐÒѾÅÅÐòÍê³É¡£Ê±¼ä¸´ÔÓ¶È
O£¨n2£©£¬ÎªÎȶ¨Ëã·¨¡£
½«ÊýÒÀ´Î½øÐбȽϣ¬²¢½«´ó£¨»òС£©µÄ£¬Íøºó·Å£¬ÈçÏ£º
public static
void bubbleSort(int []arr) {
for(int i =0;i<arr.length-1;i++) {
for(int j=0;j<arr.length-i-1;j++) { //-1ΪÁË·ÀÖ¹Òç³ö
if(arr[j]>arr[j+1]) { //°Ñ´óµÄÊý·ÅÔÚºóÃæ
int temp = arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
} |
£¨2£©¿ìËÙÅÅÐò
ͨ¹ýÒ»ÌËÅÅÐò½«ÒªÅÅÐòµÄÊý¾Ý·Ö¸î³É¶ÀÁ¢µÄÁ½²¿·Ö£¬ÆäÖÐÒ»²¿·ÖµÄËùÓÐÊý¾Ý¶¼±ÈÁíÍâÒ»²¿·ÖµÄËùÓÐÊý¾Ý¶¼ÒªÐ¡£¬È»ºóÔÙ°´´Ë·½·¨¶ÔÕâÁ½²¿·ÖÊý¾Ý·Ö±ð½øÐпìËÙÅÅÐò£¬Õû¸öÅÅÐò¹ý³Ì¿ÉÒÔµÝ¹é½øÐУ¬ÒÔ´Ë´ïµ½Õû¸öÊý¾Ý±ä³ÉÓÐÐòÐòÁС£
public static
void quickSort(int[] numbers,int low,int high){
if(low < high) {
¡¡¡¡int middle = getMiddle(numbers,low,high); //½«numbersÊý×é½øÐÐÒ»·ÖΪ¶þ
¡¡¡¡quickSort(numbers, low, middle-1); //¶ÔµÍ×Ö¶Î±í½øÐеݹéÅÅÐò
¡¡¡¡quickSort(numbers, middle+1, high); //¶Ô¸ß×Ö¶Î±í½øÐеݹéÅÅÐò
}
} |
£¨3£©Ñ¡ÔñÅÅÐò
ÿһ´Î´Ó´ýÅÅÐòµÄÊý¾ÝÔªËØÖÐÑ¡³ö×îС£¨»ò×î´ó£©µÄÒ»¸öÔªËØ£¬´æ·ÅÔÚÐòÁÐµÄÆðʼλÖã¬Ö±µ½È«²¿´ýÅÅÐòµÄÊý¾ÝÔªËØÅÅÍê¡£
Ñ¡ÔñÅÅÐòÊDz»Îȶ¨µÄÅÅÐò·½·¨£¨±ÈÈçÐòÁÐ[5£¬ 5£¬ 3]µÚÒ»´Î¾Í½«µÚÒ»¸ö[5]Óë[3]½»»»£¬µ¼ÖµÚÒ»¸ö5Ų¶¯µ½µÚ¶þ¸ö5ºóÃæ£©¡£
public static
void selectSort(int[]a){
int minIndex=0;
int temp=0;
for(int i=0;i<a.length-1;i++) {
minIndex=i;//ÎÞÐòÇøµÄ×îСÊý¾ÝÊý×éϱê
for(intj=i+1;j<a.length;j++) {
//ÔÚÎÞÐòÇøÖÐÕÒµ½×îСÊý¾Ý²¢±£´æÆäÊý×éϱê
if(a[j]<a[minIndex]) {
minIndex=j;
}
}
//½«×îÐ¡ÔªËØ·Åµ½±¾´ÎÑ»·µÄǰ¶Ë
temp=a[i];
a[i]=a[minIndex];
a[minIndex]=temp;
}
} |
£¨4£©²åÈëÅÅÐò
ÿ²½½«Ò»¸ö´ýÅÅÐòµÄ¼Ç¼£¬°´Æä˳ÐòÂë´óС²åÈëµ½Ç°ÃæÒѾÅÅÐòµÄ×ÖÐòÁеĺÏÊÊλÖ㨴ӺóÏòǰÕÒµ½ºÏÊÊλÖú󣩣¬Ö±µ½È«²¿²åÈëÅÅÐòÍêΪֹ¡£
ÿһ¸öÊýºÍËüÇ°ÃæµÄÊýÒÀ´Î½øÐбȽϣ¬ÒòÎªÇ°ÃæµÄÊýµÄ˳ÐòÊÇÒѾÅźõÄ
private static
int[] insertSort(int[]arr){
for(int i=1;i<arr.length;i++){
for(int j=i;j>0;j--){
if(arr[j]<arr[j-1]){
int temp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
}else{
break;
}
}
}
return arr;
} |
£¨5£©Ï£¶ûÅÅÐò
°Ñ¼Ç¼°´Ï±êµÄÒ»¶¨ÔöÁ¿·Ö×飬¶Ôÿ×éʹÓÃÖ±½Ó²åÈëÅÅÐòËã·¨ÅÅÐò£»Ëæ×ÅÔöÁ¿Öð½¥¼õÉÙ£¬Ã¿×é°üº¬µÄ¹Ø¼ü´ÊÔ½À´Ô½¶à£¬µ±ÔöÁ¿¼õÖÁ1ʱ£¬Õû¸öÎļþÇ¡±»·Ö³ÉÒ»×飬Ëã·¨±ãÖÕÖ¹¡£
public static
void main(String [] args)
{
int[]a={49,38,65,97,76,13,27,49,78,34,12,64,1};
//Ï£¶ûÅÅÐò
int d=a.length;
while(true){
d=d/2;
for(int x=0;x<d;x++){
for(int i=x+d;i<a.length;i=i+d){
int temp=a[i];
int j;
for(j=i-d;j>=0&&a[j]>temp;j=j-d){
a[j+d]=a[j];
}
a[j+d]=temp;
}
}
if(d==10){
break;
}
}
} |
£¨6£©¹é²¢ÅÅÐò
½¨Á¢Ôڹ鲢²Ù×÷ÉϵÄÒ»ÖÖÓÐЧµÄÅÅÐòËã·¨,¸ÃËã·¨ÊDzÉÓ÷ÖÖ稣¨Divide
and Conquer£©µÄÒ»¸ö·Ç³£µäÐ͵ÄÓ¦Ó᣽«ÒÑÓÐÐòµÄ×ÓÐòÁкϲ¢£¬µÃµ½ÍêÈ«ÓÐÐòµÄÐòÁУ»¼´ÏÈʹÿ¸ö×ÓÐòÁÐÓÐÐò£¬ÔÙʹ×ÓÐòÁжμäÓÐÐò¡£Èô½«Á½¸öÓÐÐò±íºÏ²¢³ÉÒ»¸öÓÐÐò±í£¬³ÆÎª¶þ·¹é²¢¡£Ê±¼ä¸´ÔÓ¶ÈO(n
log n) ¡£
public static
int[] sort(int[] nums, int low, int high) {
int mid = (low + high) / 2;
if (low < high) {
// ×ó±ß
sort(nums, low, mid);
// ÓÒ±ß
sort(nums, mid + 1, high);
// ×óÓҹ鲢
merge(nums, low, mid, high);
}
return nums;
} |
£¨6£©¶ÑÅÅÐò
ÀûÓöѻýÊ÷£¨¶Ñ£©ÕâÖÖÊý¾Ý½á¹¹ËùÉè¼ÆµÄÒ»ÖÖÅÅÐòËã·¨£¬ËüÊÇÑ¡ÔñÅÅÐòµÄÒ»ÖÖ¡£¿ÉÒÔÀûÓÃÊý×éµÄÌØµã¿ìËÙ¶¨Î»Ö¸¶¨Ë÷ÒýµÄÔªËØ¡££¨ÔÝûÀí½â£©
4.µÝ¹é¡¢µü´ú
µÝ¹éÊÇ×Ô¼ºµ÷ÓÃ×Ô¼º£¬Ö±µ½Âú×ã½áÊøµÝ¹éµÄÌõ¼þʱ½áÊø¡£µü´úÊDz»¶ÏµÄÑ»·£¬Ö±½ÓÑ»·½áÊø¡£Ò»°ãÀ´Ëµ£¬ÄÜÓõü´ú¾Í²»Óõݹ飬µÝ¹éÏûºÄ×ÊÔ´´ó¡£
µÝ¹é
int recursion(...){
if(...) { //µÝ¹éÖÕÖ¹Ìõ¼þ
return abc(...);
}
return 0;
}
µü´ú
int iteration(...){
for(; ; ;) { //µü´úÖÕÖ¹Ìõ¼þ
a = b + c;
}
} |
5.λ²Ù×÷
λ²Ù×÷ÓëÂß¼ÔËËã·ûÊÇ2ÖÖ²»Í¬µÄ¶«Î÷£¬³õѧ֮ʱ£¬×Ô¼º»¹¾³£¼Ç²»Ç塣λ²Ù×÷ÓÐ6ÖÖ£¬¼´Ó루&£©¡¢»ò£¨|£©¡¢Òì»ò£¨^£©¡¢È¡·´£¨~£©¡¢×óÒÆ£¨<<£©¡¢ÓÒÒÆ£¨>>£©¡£ÔÚÕâЩλ²Ù×÷ÔËËã·ûÖУ¬Ö»ÓÐÈ¡·´£¨~£©Êǵ¯Ä»ÔËËã·û£¬ÆäËû5ÖÖ¶¼ÊÇ˫ĿÔËËã·û¡£
6.¸ÅÂÊ
7.ÅÅÁÐ×éºÏ |