Random :(最大值-最小值+1)+最小值
插入排序
int arr []={5,9,4,1,3};
for (int i = 1; i < arr.length; i++) {
int temp = arr[i];
int j = i;
while (j > 0 && temp< arr[j-1]){
arr[j]=arr[--j];
}
if(j!=i){
arr[j]=temp;
}
}
System.out.println(Arrays.toString(arr));
冒泡排序
for (int i = 0; i < arr.length-1; i++) {
for (int j = 0; j < arr.length-i-1; j++) {
if(arr[j]>arr[j+1]){
arr[j] = arr[j] ^ arr[j+1];
arr[j+1] = arr[j] ^ arr[j+1];
arr[j] = arr[j] ^ arr[j+1];
}
}
}
选择排序
int [] arr = {5,4,3,2,1};
for(int i=0;i<arr.length-1;i++){
int index = i;
for(int j = i+1;j < arr.length; j++){
if(arr[index] > arr[j]){
index = j;
}
}
if (index!=i){
arr[index] = arr[index] ^ arr[i];
arr[i] = arr[index] ^ arr[i];
arr[index] = arr[index] ^ arr[i];
}
System.out.println(Arrays.toString(arr));
选择排序简单粗暴版
for (int i = 0; i < arr.length-1; i++) {
for (int j = i+1; j < arr.length; j++) {
if(arr[i]>arr[j]){
arr[j]=arr[j] ^arr[i];
arr[i]=arr[j] ^arr[i];
arr[j]=arr[j] ^arr[i];
}
}
}
二分查找
int start = 0;
int end = arr.length-1;
while (true){
int m = (end+start)/2;
if (a== arr[m]){
System.out.println("找到了索引"+(m+1));
break;
}else if (a < arr[m]){
end = m-1;
}else if(a > arr[m] ){
start = m+1;
}
if (start > end ){
System.out.println("找不到");
break;
内存分析