黑马程序员技术交流社区
标题:
数组排序的两种方式解析
[打印本页]
作者:
安逸小马
时间:
2019-6-26 19:49
标题:
数组排序的两种方式解析
在前两天我们学习了数组,所以在这里我就分享一下自己关于解决数组排序的一些个人的想法:
数组排序通常就是讲数组按照升序或者降序的方式进行排序,就拿升序为例,以下是我根据老师讲解和自己的想法总结的两种方式的代码:
(1):第一种方式就是通过双重循环找出比sz
小的元素,并与之交换元素值,这样就可以把小的元素放在数组的左边并且按照升序的方式进行排列
int
[] sz = {
1
,
5
,
8
,
3
,
89
,
57
,
64
,
25
,
6
,
9
,
56
,
75
};
for
(
int
i =
0
; i < sz.
length
-1; i++) {
for
(
int
j = i+1; j < sz.
length
; j++) {
if
(sz[j]< sz
) {
int
temp =
0
;
temp = sz[j];
sz[j] = sz
;
sz
= temp;
}
(2): 第二种方式也是通过双重循环,通过将sz[j]于sz[j+1]进行比较,将大的元素值不断地往后移动,最后实现一个升序的排列,
int
[] sz = {
1
,
5
,
8
,
3
,
89
,
57
,
64
,
25
,
6
,
9
,
56
,
75
};
for
(
int
i =
0
; i < sz.
length
; i++) {
for
(
int
j =
0
; j < sz.
length
- 1; j++) {
if
(sz[j] > sz[j +
1
]) {
int
temp =
0
;
temp = sz[j +
1
];
sz[j +
1
] = sz[j];
sz[j] = temp;
}
}
这里要注意的是,两种方式的不同之处在于,第一种方式看着更直观,通过循环比较直接把小的元素放在左边实现升序,而第二种方法则是通过循环比较,每一次都从第一个元素开始进行不断地循环比较将大的元素通过值交换一点点的移到数组的右边从而实现升序,有点类似“蠕动”的方式。 这两种方式总的来说第一种方式更加容易理解,而且程序的运算量要比第二种小一些,很适合初学者使用。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2