排序算法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了排序算法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2715字,纯文字阅读大概需要4分钟。
内容图文
1.简单排序
1.1.冒泡排序
冒泡排序(
Bubble Sort
),是一种计算机科学领域的较简单的排序算法。
1.1.1.需求
排序前: {4,5,6,3,2,1}
排序后:
{1,2,3,4,5,6}
1.1.2.排序原理
1.
比较相邻的元素。如果前一个元素比后一个元素大,就交换这两个元素的位置。
2.
对每一对相邻元素做同样的工作,从开始第一对元素到结尾的最后一对元素。最终最后位置的元素就是最大
值。
1.1.3.冒泡排序的代码实现
冒泡排序 API 设计:
名 | Bubble |
构造方法 | Bubble() :创建 Bubble 对象 |
成员方法 |
1.public static void sort(Comparable[] a)
:对数组内的元素进行排序 2.private static boolean greater(Comparable v,Comparable w): 判断 v 是否大于 w 3.private static void exch(Comparable[] a,int i,int j) :交换 a 数组中,索引 i 和索引 j 处的值 |
1 /** 2 * 冒泡排序: 3 * 第一层循环控制比较的元素个数 4 * 第二次循环控制需要比较的元素。每比较一次,下一次就少比较一惠 5 */ 6 public class BubbeDemo { 7 8 public static void sort(Comparable[] arr) { 9 // int[] arr ={4,6,8,7,9,2,10,1}; 10 // 两层for循环,控制比较的次数 11 for (int i = 0; i < arr.length-1; i++) { 12for (int j = 0; j <arr.length-1-i ; j++) { 13//比较大小14if (greater(arr[j],arr[j+1])){ 15//交换数据16 exchange(arr,j,j+1); 17 } 18 } 19 } 20 } 2122//比较大小23privatestaticboolean greater(Comparable x,Comparable y){ 24return x.compareTo(y)>0; 25 } 2627//交换数据:元素i与元素j交换位置28privatestaticvoid exchange(Comparable[] a,int i,int j){ 29 Comparable temp; 30 temp = a[i]; 31 a[i]=a[j]; 32 a[j]=temp; 33 } 34} 3536publicclass BubbleTest { 37publicstaticvoid main(String[] args) { 38 Integer[] arr ={4,6,8,7,9,2,10,1}; 39 BubbeDemo.sort(arr); 40 System.out.println(Arrays.toString(arr)); 4142 Arrays.sort(arr); 43 } 4445 }
1.2.选择排序
1.3.插入排序
2.高级排序
冒泡排序(
Bubble Sort
),是一种计算机科学领域的较简单的排序算法。
需求:
排序前:
{4,5,6,3,2,1}
public
void
setAge
(
int
age
) {
this
.
age
=
age
;
}
@
Override
public
String
toString
() {
return
"Student{"
+
"username=‘"
+
username
+
‘\‘‘
+
", age="
+
age
+
‘}‘
;
}
/
/
定义比较规则
@Override
public
int
compareTo
(
Student o
) {
return this
.
getAge
()
-
o
.
getAge
();
}
}
/
/
测试类
public class
Test
{
public static
void
main
(
String
[]
args
) {
Student stu1
=
new
Student
();
stu1
.
setUsername
(
"zhangsan"
);
stu1
.
setAge
(
17
);
Student stu2
=
new
Student
();
stu2
.
setUsername
(
"lisi"
);
stu2
.
setAge
(
19
);
Comparable max
=
getMax
(
stu1
,
stu2
);
System
.
out
.
println
(
max
);
}
/
/
测试方法,获取两个元素中的较大值
public static
Comparable getMax
(
Comparable c1
,
Comparable c2
){
int
cmp
=
c1
.
compareTo
(
c2
);
if
(
cmp
>=
0
){
return
c1
;
}
else
{
return
c2
;
}
}
}
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
类名 | Bubble |
构造方法 | Bubble() :创建 Bubble 对象 |
成员方法 |
1.public static void sort(Comparable[] a)
:对数组内的元素进行排序 2.private static boolean greater(Comparable v,Comparable w): 判断 v 是否大于 w 3.private static void exch(Comparable[] a,int i,int j) :交换 a 数组中,索引 i 和索引 j 处的值 |
排序后:
{1,2,3,4,5,6}
排序原理:
1.
比较相邻的元素。如果前一个元素比后一个元素大,就交换这两个元素的位置。
2.
对每一对相邻元素做同样的工作,从开始第一对元素到结尾的最后一对元素。最终最后位置的元素就是最大
值
原文:https://www.cnblogs.com/aaaazzzz/p/13703583.html
内容总结
以上是互联网集市为您收集整理的排序算法全部内容,希望文章能够帮你解决排序算法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。