幾種簡單排序

2021-08-07 18:16:05 字數 1523 閱讀 3825

(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 ...