目录
排序方法代码java实现排序生成随机数组冒泡排序选择排序快速排序测试
Scala排序生成随机数组冒泡排序选择排序快速排序
排序方法代码
java实现排序
生成随机数组
public static int[] arr
;
public static int[] getRandomArr(int size
) {
arr
= new int[size
];
Random random
= new Random();
for (int i
= 0; i
< size
; i
++) {
arr
[i
]=random
.nextInt(100);
}
return arr
;
}
public static void printArr(int[] arr
) {
for (int i
= 0; i
< arr
.length
; i
++) {
System
.out
.print(arr
[i
]+" ");
}
System
.out
.println();
}
冒泡排序
public static void bubbleSort(int[] arr
) {
for (int i
= 0; i
< arr
.length
; i
++) {
for (int j
= 0; j
< arr
.length
-i
-1; j
++) {
if (arr
[j
] > arr
[j
+ 1]) {
int tmp
= arr
[j
];
arr
[j
] = arr
[j
+1];
arr
[j
+1] = tmp
;
}
}
}
}
选择排序
public static void selectSort(int[] arr
) {
for (int i
= 0; i
< arr
.length
-1; i
++) {
int min
= i
;
for (int j
= i
+1; j
< arr
.length
-i
; j
++) {
if (arr
[j
] < arr
[min
]) {
min
= j
;
}
}
if (min
!= i
) {
int tmp
= arr
[min
];
arr
[min
] = arr
[i
];
arr
[i
] = tmp
;
}
}
}
快速排序
public static void quickSort(int[] arr
,int low
,int high
) {
int l
= low
;int h
= high
;
if (l
>= h
) {
return;
}
boolean flag
= false;
while (l
< h
) {
if (arr
[l
] > arr
[h
]) {
int tmp
= arr
[l
];
arr
[l
] = arr
[h
];
arr
[h
] = tmp
;
flag
= !flag
;
}
if (flag
) {
l
++;
} else {
h
--;
}
}
l
--;
h
++;
quickSort(arr
,low
,l
);
quickSort(arr
,h
,high
);
}
测试
public static void main(String
[] args
) {
getRandomArr(6);
quickSort(arr
,0,5);
printArr(arr
);
}
Scala排序
新建一个maven的quickstar项目,然后按ctrl+alt+shift+s,如下选上Scala SDK 在main目录下新建文件夹scala,然后按照下图把图标变蓝 在scala目录下新建一个Scala Class类 写上对象的名称,在scala里面对象都是静态的,类都是成员的,所以一般都建一个对象
生成随机数组
def
getRandomArr(size
:Int
):Array
[Int
]= {
var arr
= Array
[Int
](size
)
for(i
:Int
<- 0 until size
) {
arr(i
) = scala
.util
.Random
.nextInt(100)
}
arr
}
冒泡排序
def
bubbleSort(arr
:Array
[Int
]):Unit
= {
for(i
:Int
<- 0 until arr
.length
) {
for(j
:Int
<- 0 until arr
.length
-i
-1) {
if(arr(j
) > arr(j
+1)) {
var tmp
= arr(j
)
arr(j
) = arr(j
+1)
arr(j
+1) = arr(j
)
}
}
}
}
选择排序
def
selectSort(arr
:Array
[Int
]):Unit
= {
for(i
:Int
<- 0 until arr
.length
-1) {
var min
=i
for(j
:Int
<- i
+1 until arr
.length
) {
if(arr(j
) < arr(min
)) {
min
= j
}
}
if(i
!= min
) {
var tmp
= arr(i
)
arr(i
) = arr(min
)
arr(min
) = tmp
}
}
}
快速排序
def
quickSort(arr
:Array
[Int
],low
:Int
,high
:Int
): Unit
= {
var l
= low
var h
= high
if(l
>= h
) {
return
}
var flag
= false
while(l
< h
) {
if(arr(l
) > arr(h
)) {
var tmp
= arr(l
)
arr(l
) = arr(h
)
arr(h
) = tmp
flag
= !flag
}
if(flag
) l
+=1
else h
-=1
}
l
-=1
h
+=1
quickSort(arr
,low
,l
)
quickSort(arr
,h
,high
)
}