//氣泡排序
public
static
int[
]bubblesort
(int
arr)
}return arr;
}
//選擇排序
public
static
int[
]selectsort
(int
arr)
swap
(arr, i, min);}
return arr;
}
//插入排序
public
static
int[
]insertsort
(int
arr)
arr[j +1]
= temp;
}return arr;
}
//希爾排序
public
static
int[
]shellsort
(int
arr)
return arr;
}private
static
void
shell
(int
arr,
int k)
arr[j + k]
= temp;
}}
//歸併排序
public
static
int[
]mergesort
(int
arr)
private
static
int[
]combine
(int
arr1,
int[
] arr2)
return arr;
}
//快速排序
public
static
int[
]quicksort
(int
arr)
private
static
void
quickdosort
(int
arr,
int left,
int right)
private
static
intgetpartition
(int
arr,
int left,
int right)
}swap
(arr, index -
1, left)
;return index -1;
}
//堆排序
public
static
int[
]heapsort
(int
arr)
while
(length >0)
return arr;
}private
static
void
adjust
(int
arr,
int i,
int length)
}
//計數排序
public
static
int[
]countingsort
(int
arr)
int[
] result =
newint
[max - min +1]
;for
(int i : arr)
int j =0;
for(
int i =
0; i < result.length; i++)}
return arr;
}
版本一://桶排序
public
static
int[
]bucketsort
(int
arr)
int bucketnum = arr.length /10;
//初始化arr.length個空桶
for(
int i =
0; i < bucketnum; i++
)for
(int val : arr)
for(
int i =
0; i < bucketnum; i++
)int j =0;
for(
int i =
0; i < bucketnum; i++)}
return arr;
}
版本二://基數排序(使用陣列麻煩)
public
static
int[
]radixsort
(int
arr)
int times =
(max +"")
.length()
;int
nums =
newint[10
][arr.length]
;//記錄每個桶的索引
int[
] count =
newint[10
];for(
int i =
0, n =
1; i < times; i++
, n *=10)
int index =0;
for(
int k =
0; k <
10; k++)}
for(
int j =
0; j < count.length; j++)}
return arr;
}
//基數排序2(使用list)
public
static
int[
]radixsort2
(int
arr)
int times =
(max +"")
.length()
; arraylist
> list =
newarraylist
<
>()
;for
(int i =
0; i <
10; i++
) list.
add(
newarraylist
<
>()
);for(
int i =
0, n =
1; i < times; i++
, n *=10)
int index =0;
for(
int j =
0; j < list.
size()
; j++)}
for(list l : list) l.
clear()
;}return arr;
}
十大排序演算法
1.非線性時間類排序 時間複雜度未突破 0 nlog 2n 不穩定的四個排序演算法 選擇排序 0 n2 希爾排序 0 n1.3 希爾排序實現python 快速排序 0 n log2 n 0 nlog 2n 0 nlog 2 n 快速排序實現c python 堆排序 0 n log2 n 0 nlog...
十大排序演算法
排序規則 從左至右依次增大 一 基於比較的排序演算法 插入排序 逐個遍歷未排序序列,將其在已排序序列中從右到左比較,直到遇到比自己小的數,然後將元素插入到那個數的後面,有序序列從左向右生長。選擇排序 在未排序序列中選擇最小的元素,將其插入到已排序序列的末尾,有序序列從左向右生長。氣泡排序 從左至右逐...
十大排序演算法
github 排序演算法是 資料結構與演算法 中最基本的演算法之一。排序演算法可以分為內部排序和外部排序,內部排序是資料記錄在記憶體中進行排序,而外部排序是因排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。常見的內部排序演算法有 插入排序 希爾排序 選擇排序 氣泡排序 歸併排序...