android中常用5種排序演算法

2021-08-08 18:16:09 字數 2557 閱讀 9751

在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 命令...