在android中會經常使用一些演算法來實現一些複雜的邏輯;在這片博文中主要介紹五種演算法:
1.選擇排序;
2.插入排序;
3.快速排序;
4.合併排序;
5.堆排序;
在看下面之前,需要注意:有的演算法語言表述比較乏力,在看下面博文時候要注意力在**之上以下**親測可用;
從陣列一端選擇乙個陣列中的乙個元素,通過比較對比取出最小值(或者最大值)放在array的左邊(右邊 這裡主要視遍歷的開始為左還是右);逐個遍歷;
下面看**:
/**選擇排序
*遍歷陣列 然後每次遍歷到乙個元素之後 繼續遍歷該元素之後的所有元素 然後找 到最小的元素 和其換位置*/
public
static
int select(int array)
}if (array[i] > array[minpos])
}return
array;
}
同樣逐個遍歷陣列,每次兩兩比較,排列所遍歷元素及其之前的元素;遍歷完成,排序亦完成;
/***插入排序
*相當於 從0開始一直++ 然後一直排列索引跟之前的元素
* */
public
static
int insert(int array)}}
return array;
}
下面來看快速排序;選擇乙個元素(一般取array的第乙個元素),然後作為目標元素,將array中比目標元素小的放在目標元素左邊,比目標元素大的放在目標元素右邊;
然後繼續用相同方式排列左右兩邊的array; 下面來看**:
/**快速排序
* 在快排中要設定分水嶺 就是隨機乙個元素 然後比他小的放置到其左邊 比其大的在有邊 迴圈往復
* */
public
static
int quick(int array)
private
static
void sortquick(int array, int low, int length)
}private
static
int firstrun(int array, int low, int length)
swrap(array,low,length);
while (array[low] < base)
swrap(array,low,length);
}return low;
}private
static
void swrap(int array, int low, int length)
合併排序就是將陣列拆分,然後比較多的再用插入排序的方式實現排序;用於處理元素或者較為複雜的情況;分而治之,合而為一;
/**合併排序
* 一直在分割
* 然後 兩部分 一直分割 然後一直遞迴*/
public
static
int mesh(int array)
private
static
int mysort(int array, int low, int length)
return
array;
}private
static
void merge(int array, int low, int mid, int length) else
}while (i <= mid)
while (j <= length)
//合併的邏輯 賦值給array
for (int k = 0; k < temp.length; k++)
}
首先介紹下堆:堆就是乙個具備任何根元素大於(或者小於)左右孩子的完全的二叉樹
堆排序其實就是一直構建大頂堆或者小頂堆,然後把堆頂和最後的元素調換,然後排除堆頂,重構其他元素為頂堆,再次替換頂元素,再替換,這麼乙個迴圈往復的過程;
ok~ 下面看**:
/**
* 堆演算法 大頂堆 小頂堆
* 每次取堆定 然後放入陣列 重構堆 再取再重構
* */
public
static
int heap(int array)
return
array;
}private
static
void swapheap(int array, int a, int b)
private
static
void buildheap(int array, int lastindex)
}else
if (childl <= lastindex)
if (array[i] < array[maxindex])
}}
感謝閱讀 期待意見 請介紹下Android中常用的五種布局
常用五種布局方式,分別是 framelayout 框架布局 linearlayout 線性布局 absolutelayout 絕對布局 relativelayout 相對布局 tablelayout 布局 線性布局,每乙個linearlayout裡面又可分為垂直布局 android orientat...
OC中常用排序方法
oc中常用排序方法 1 不可變陣列 nsarray sortedarrayusingselector sel comparator nsarray sortedarrayusingcomparator nscomparator cmptr 2 可變陣列 void sortusingselector ...
Android 中常用ADB命令介紹
adb android debug bridge 是android sdk中的乙個工具,它是在android sdk platform tools 資料夾下的,使用adb可以直接操作管理android模擬器或者真實的andriod裝置。adb主要功能有 1 在android裝置上執行shell 命令...