冒泡排序 Bubble Sort
2015-06-04 00:00
183 查看
时间复杂度为
O(N^2)。虽然冒泡排序与插入排序的时间复杂度 应该避免使用冒泡排序,
重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
public
class
BubbleSort {
public
static
void
main(String[] args) {
int
[] a;
int
n=10;
//生产随机数组
a =
new
int
;
Random rand =
new
Random();
for
(
int
i=0;i<a.
length
;i++){
a[i] = rand.nextInt(n);
}
System.
out
.println(Arrays. toString(a));
long
s = System. nanoTime();
int
[] b= sort(a);
long
dur = System. nanoTime() - s;
System.
out
.println(Arrays. toString(b));
System.
out
.println(dur);
}
public
static
int
[] sort(
int
[] a){
for
(
int
i=0;i<a.
length
;i++){
for
(
int
j=i+1;j<a.
length
;j++){
if
(a[i] > a[j]){
int
tmp = a[j];
a[j] = a[i];
a[i] = tmp;
}
}
}
return
a;
}
}
O(N^2)。虽然冒泡排序与插入排序的时间复杂度 应该避免使用冒泡排序,
重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
public
class
BubbleSort {
public
static
void
main(String[] args) {
int
[] a;
int
n=10;
//生产随机数组
a =
new
int
;
Random rand =
new
Random();
for
(
int
i=0;i<a.
length
;i++){
a[i] = rand.nextInt(n);
}
System.
out
.println(Arrays. toString(a));
long
s = System. nanoTime();
int
[] b= sort(a);
long
dur = System. nanoTime() - s;
System.
out
.println(Arrays. toString(b));
System.
out
.println(dur);
}
public
static
int
[] sort(
int
[] a){
for
(
int
i=0;i<a.
length
;i++){
for
(
int
j=i+1;j<a.
length
;j++){
if
(a[i] > a[j]){
int
tmp = a[j];
a[j] = a[i];
a[i] = tmp;
}
}
}
return
a;
}
}
相关文章推荐
- JavaScript演示排序算法
- 冒泡排序
- 算法之排序算法的算法思想和使用场景总结
- php 地区分类排序算法
- js三种排序算法分享
- Javascript中的常见排序算法
- c++冒泡排序示例分享
- java 合并排序算法、冒泡排序算法、选择排序算法、插入排序算法、快速排序算法的描述
- Java中的数组排序方式(快速排序、冒泡排序、选择排序)
- python冒泡排序算法的实现代码
- c语言实现冒泡排序、希尔排序等多种算法示例
- 排序算法的javascript实现与讲解(99js手记)
- c#冒泡排序示例分享
- C++中十种内部排序算法的比较分析
- Java实现几种常见排序算法代码
- 浅谈javascript实现八大排序
- 浅谈php冒泡排序
- Javascript冒泡排序算法详解
- JavaScript中九种常用排序算法
- C++冒泡排序算法实例