1:插入演算法
public static void main(string args)
arr[j+1]=temp;
} }
2:歸併排序
public static void main(string args)
date time1 = new date();
long a1 = time1.gettime();
// for(int i=0;i<1000000;i++)
date time2 = new date();
long a2 = time2.gettime();
long time = a2 - a1;
system.out.println(arrays.tostring(arr));
system.out.println("所需的時間為:" + time);
} private static void sort(int arr, int length)
arr[j + n] = temp;
}n = n / 2;
} }
5:bfprt第n大
public static void bubble(int a, int first, int end)
}} }
// 求取最小的k個數
// 陣列a中從a[p]到a[r]的元素按照x劃分,大於或者等於x的在右邊,小於x的在左邊
public static int partitionmodify(int a, int p, int r, int x)
if (i != j) else
}} /*
* 上面的迴圈結束分為幾種情況 1 i > j 此時必定有 a[i] >= x,否則 a[j+1] = a[i] < x 與 a[j+1]
* >= x 矛盾 ,如果不是邊界,進入if語句 2 i = j 此時如果 a[i] < x 則a[i+1] = a[j+1] >x 返回 i
* 3 當i==p,此時直接返回邊界元素下標 4 當i == r,此時為右邊界,此時a[i]肯定為x,返回i - 1,也即r - 1
*/if (a[i] >= x && i > p)
return i;
} public static int selectmodify(int a,int p, int r, int k)
// 將r-p+1個資料按五個元素分為一組,可以分為(r - p + 1) / 5組
// 分別找出各組的中位數,再將各組的中位數與陣列開頭的資料按組的順序依次交換
for (i = 0; i < (r - p + 1) / 5; i++)
// 對這些各組的中位數
// 按同樣的方法繼續求出中位數,最後得出的整個陣列的中位數 x
int x = selectmodify(a, p, p + (r - p + 1) / 5 - 1, (r - p + 6) / 10);
i = partitionmodify(a, p, r, x);
int j = i - p + 1;
if (k <= j) else
} public static void main(string args) ;
system.out.println(arrays.tostring(a));
bubble(a, 0, a.length-1);
system.out.println(arrays.tostring(a));
system.out.println(selectmodify(a, 0, a.length-1, 11));
}
一些常用方法的記錄
1.建立臨時目錄 建立臨時目錄 try catch ioexception e 結果 2.正規表示式的組 測試正規表示式 string slippingwindowpointoprand s s s string slippingwindowpointcollectoprand slippingwi...
記錄一些排序演算法
記錄一些排序演算法的c 插入排序o n 2 void insertsort int a a i 1 key 歸併排序o nlgn define max 101 void merge int a,int p,int q,int r else if i n1 1 else if j n2 1 void ...
記錄 property的一些常用設定
推薦做法是nsstring用copy,delegate用assign 且一定要用assign,不要問為什麼,只管去用就是了,以後你會明白的 非objc資料型別,比如int,float等基本資料型別用assign 預設就是assign 而其它objc型別,比如nsarray,nsdate用retain...