package test;
/** * created by mff on 2017/10/26.
* 日常操作中常見的排序方法有:氣泡排序、快速排序、選擇排序、插入排序、希爾排序,甚至還有基數排序、雞尾酒排序、桶排序、鴿巢排序、歸併排序等。
*/public
class
sortmethods }}
}/**
* 快速排序
快速排序使用分治法策略來把乙個序列分為兩個子串行。* *
*@param numbers
*@param start
*@param end
*/public
static
void
quicksort(int numbers, int start, int end)
} while (i <= j);
if (start < j)
quicksort(numbers, start, j);
if (end > i)
quicksort(numbers, i, end);}}
/*** 選擇排序
選擇排序是一種簡單直觀的排序方法,每次尋找序列中的最小值,然後放在最末尾的位置。
* 在未排序序列中找到最小元素,存放到排序序列的起始位置
* 再從剩餘未排序元素中繼續尋找最小元素,然後放到排序序列末尾。
* 以此類推,直到所有元素均排序完畢。
**@param numbers
*/public
static
void
selectsort(int numbers)
temp = numbers[i];
numbers[i] = numbers[k];
numbers[k] = temp;}}
/*** 插入排序
插入排序的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。其具體步驟參見**及注釋。* *
*@param numbers
*/public
static
void
insertsort(int numbers)
}/*** *
*@param numbers
*/public
static
void
mergesort(int numbers, int left, int right)
if (i + (s - 1) < right)
merge(numbers, i, i + (s - 1), right);}}
/*** 歸併演算法實現
**@param data
*@param p
*@param q
*@param r
*/private
static
void
merge(int data, int p, int q, int r) else
k++;
}if (s == q + 1)
b[k++] = data[t++];
else
b[k++] = data[s++];
for (int i = p; i <= r; i++)
data[i] = b[i];
}}
java實現的一些簡單的排序演算法
冒泡 o n2 o n2 穩定 o 1 n小時較好 交換 o n2 o n2 不穩定 o 1 n小時較好 選擇 o n2 o n2 不穩定 o 1 n小時較好 插入 o n2 o n2 穩定 o 1 大部分已排序時較好 基數 o logrb o logrb 穩定 o n b是真數 0 9 r是基數 ...
常用的一些排序演算法(C 實現)
常用的排序演算法有氣泡排序,選擇排序,插入排序,歸併排序 希爾排序,堆排序等 1 冒泡 氣泡排序就是像旗袍一樣,最大的值逐漸上浮,我的實現方法是採用遞迴的,當然也可以不用遞迴 void bubblesort2 int array,int length if index length 1 bubble...
Java 一些常見的 排序演算法 面試也會問的演算法
氣泡排序 有兩層迴圈,外層遞減,內層遞增,每一趟都會得到最大的值,因為存在連個for迴圈,基本上每趟迴圈都會交換n次,所以一共交換n的平方次,所以時間複雜度為o n2 屬於效率最差的演算法 public static void pop inta 選擇排序 就是氣泡排序的改進版,首先選出乙個最小的元素...