指针
指针+1指取到数组中下一个元素,而不是地址值+1
*(array+1) == array[1]
涉及运算的是栈内存
冒泡排序
for(int i=0; i<len(arr)-1; i++){
for(int j=0; j<len(arr)-1-i; j++){
if(arr[j] > arr[j+1]){
int temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
交换排序
for(int i=0; i<len(arr)-1; i++){
for(int j=i+1; j<len(arr); j++){
if(arr[i] > arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
交换排序的优化算法
for(int i=0; i<len(arr)-1; i++){
int minIndex = i;
for(int j=i+1; j<len(arr); j++){
if(arr[minIndex] > arr[j]){
minIndex = j;
}
}
if(i != minIndex){
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
二分查找 算法
int left = 0;
int right = len(arr) -1;
while(left <= right){
int mid = (left + right)/2;
if(data < arr(mid)){
right = mid - 1;
}else if(data > arr(mid)){
left = mid + 1;
}else{
return mid;
}
}
//若循环结束都没有返回数据,则说明数据不存在
return -1;