(1)、直接插入排序
/*** 直接插入排序
* @param inta
* @return inta
* */
public static void insertsort(int a)
a[j+1] = temp;}}
(2)、希爾排序
/*** 希爾排序
* @param 陣列a 增量值d 迴圈次數num
* @return 排好序的陣列a
* @author administrator
* */
public static void shellsort(int a,int d,int num)
a[j+span] = temp;}}
}}(3)、直接選擇排序
不穩定的:
/*** @name 選擇排序
* @param
* @author administrator
* */
public static void selectsort(int a)
}if(small != i)}}
穩定的:
//穩定的選擇排序演算法
public static void selectsort2(int a)
}if(small != i)}}
(4)、堆排序
/*** @name 大根堆排序
* @param int a
* @return int a
* @author administrator
* * */
public static void heapsort(int a)
}//建立最大堆
private static void createheap(int a, int n, int h)
//初始化建立最大堆
private static void initcreateheap(int a)
}(5)、氣泡排序
/*** @name 交換排序(氣泡排序)
* @author administrator
* * */
public static void bubblesort(int a)}}
}(6)、快速排序
/*** @param int a
* @return 已經排的序
* @author administrator
* * */
public static void quicksort(int a,int low,int high)
if(i < j)
//在陣列的向左掃瞄
while(i < j && temp > a[i])
if(i < j)
}a[i] = temp;
if(low < i)
quicksort(a, low, i-1);//對左端子集遞迴
if(i < high)
quicksort(a, j+1, high);//對右端子集遞迴
}
簡單排序的幾種方式
執行方式 外層for迴圈定義迴圈最大上限,每次迴圈下減 內層for迴圈,從0到外層迴圈的最大值,進行遍歷 核心 if 條件判斷,將相鄰的兩個陣列進行交換 class change foreach int item in arr class program change a newchange arr...
排序 簡單排序
氣泡排序 函式名 bubble sort 功能 實現公升序排序 引數 帶排序的陣列,陣列的長度 返回值 為空 描述 時間複雜度為o n 2 輔助空間為o 1 有一種變形的氣泡排序 雞尾酒排序,它是雙向的氣泡排序,時間複雜度也為o n 2 void bubble sort int bubble,int...
排序 簡單排序
一 氣泡排序 源 void bubble sort int array,int size array if flag 0 break 二 插入排序 原理 從第二個元素開始向前比較判斷,如果比前乙個元素小,則前乙個元素往後移動一位,直到第乙個元素或者前面條件不成立,將該元素插入當前位置。源 void ...