從n個不同元素中任取m(m≤n)個元素,按照一定的順序排列起來,叫做從n個不同元素中取出m個元素的乙個排列。當m=n時所有的排列情況叫全排列。
public
static
int total = 0;
public
static
void swap(string str, int i, int j)
public
static
void arrange(string str, int st, int len)
system.out.println();
total++;
} else
}}
package test;
public
class
permutate
public
static
void arrange(string str, int st, int len)
system.out.println();
total++;
} else }}
public
static
void main(string args) ;
arrange(str, 0, str.length);
system.out.println(total);
}}
執行結果:
a--
b--c
--a-
-c--
b--b
--a-
-c--
b--c
--a-
-c--
b--a
--c-
-a--
b--6
一步一步寫演算法(之非遞迴排序)
在上面一篇部落格當中,我們發現普通查詢和排序查詢的效能差別很大。作為乙個100萬的資料,如果使用普通的查詢方法,那麼每乙個資料查詢平均下來就要幾十萬次,那麼二分法的查詢呢,20多次就可以搞定。這中間的差別是非常明顯的。既然排序有這麼好的效果,那麼這篇部落格中,我們就對排序算做乙個總結。按照我個人的理...
一步一步寫演算法(之非遞迴排序)
在上面一篇部落格當中,我們發現普通查詢和排序查詢的效能差別很大。作為乙個100萬的資料,如果使用普通的查詢方法,那麼每乙個資料查詢平均下來就要幾十萬次,那麼二分法的查詢呢,20多次就可以搞定。這中間的差別是非常明顯的。既然排序有這麼好的效果,那麼這篇部落格中,我們就對排序算做乙個總結。按照我個人的理...
一步一步寫演算法(之遞迴和堆疊)
看過我前面部落格的朋友都清楚,函式呼叫主要依靠ebp和esp的堆疊互動來實現的。那麼遞迴呢,最主要的特色就是函式自己呼叫自己。如果乙個函式呼叫的是自己本身,那麼這個函式就是遞迴函式。我們可以看一下普通函式的呼叫怎麼樣的。試想如果函式a呼叫了函式b,函式b又呼叫了函式c,那麼在堆疊中的資料是怎麼儲存的...