【算法与数据结构】一道检测inversion count的初级算法
(轉(zhuǎn)載請(qǐng)注明出處:http://blog.csdn.net/buptgshengod)
1.題目? ??
? ? ? ?這是一道檢測(cè)inversion count的算法。它將檢測(cè)輸入序列中反序輸入的個(gè)數(shù),即檢測(cè)其中有幾對(duì)A[i] > A[j], i < j
比如輸入4,3,2,1,輸出應(yīng)該為3+2+1=6.。 因?yàn)?#xff1a;
1. ?4比3,2,1大,但4在輸入序列中是第一位,比3,2,1的index都小
2. ?3比2,1大
3. ?2比1大
2.代碼部分
/*
?*
解:用冒泡法將序列從小到大排序,計(jì)算一共移動(dòng)多少位,就有幾個(gè)這樣的序列對(duì)。時(shí)間復(fù)雜度:O(n2)
?*/
public class Test {
?public static void main(String[] args){
int i,j;
int t;
int number=0;
final int n=4;
int[] list = new int[n];
?
System.out.println("隨機(jī)產(chǎn)生數(shù)列");
for(i=0;i<n;i++){
list[i]=(int)( Math.random()*100);
? ? System.out.print(list[i]+",");
}
?
?
for(i=0;i<n-1;i++){
for(j=0;j<n-1;j++){
if(list[j+1]>=list[j]){
?
}
else{
t=list[j+1];
list[j+1]=list[j];
list[j]=t;
number++;
}
}
}
System.out.println();?
System.out.println("有 "+number+" 對(duì)A[i] > A[j], i < j");?
?
?}
}
總結(jié)
以上是生活随笔為你收集整理的【算法与数据结构】一道检测inversion count的初级算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【算法与数据结构】最大子序列和问题
- 下一篇: 【算法与数据结构】中缀表达式转为后缀表达