1. 陣列中兩個元素相加等於指定數的所有組合(僅用一次迴圈且不能建立新的陣列或者集合)
思路:從陣列的前後兩端(i=0,j=array.lengths)分別利用指標(計數器)來掃瞄陣列,如果滿足相加等於目標則列印,否則當sum
// 快速尋找滿足條件的兩個
// 陣列中兩個數的和滿足指定結果
public
class
test
;static
intmaxindex
=arr
.length -1
;// 索引最大值
static
intsum =11
;// 求兩個數的和等於的值
public
static
void
main
(string
args
)// 如果:sumarr[i]+arr[j] j--
static
void
find1
(int
arr)
elseif(
arr[i]
+arr[j
]<
sum)
else}}
}
補充:啟用兩個指標(計數器)演算法思維也適用於「從陣列(單鏈表)中找出倒數第k個元素」
public static void main(string args) ;
int i1 = 0;
int k = 3;
int i2 = 0;
while (array.length > 0)
//僅當第二個指標已經開始,才繼續計數
if (i2 > 0)
//當第乙個指標到底時
if (i1 == array.length - 1)
}}
2. 指定範圍內的完數查詢
迴圈指定範圍的數,找出此數的整除數 sum += i //i為整除數
public static void findperfectnum(int n)
}if (sum == n)
}
一些基礎演算法
1.字串的順序反向輸出和數值的引用傳遞 public class myclass public integer aaa integer i public static string reverse string s 2.數值排序 public class test int arry test tes...
關於一些基礎演算法
一 查詢演算法 1 順序查詢 從頭到尾逐個比較。優點 對資料沒有要求,演算法穩定。缺點 效率低,不適合大規模資料的查詢。2 二分查詢 資料必須是有序的,然後與中間值比較,比中間大則向右半部分查詢,比中間值小則向左半部分查詢。優點 效率高 極高 缺點 資料必須先進行排序。3 塊查詢 類似於查詢英文詞典...
OC語言的一些基礎演算法
1 逆序查詢 void reversesequencelookupwitharray nsmutablearray array 注意 比較大小時注意把陣列裡面的物件轉換為基本資料型別再進行比較 2 選擇排序 void selectsortwitharray nsmutablearray array ...