1.快速排序
1.1 java实现
import java.util.Random;
public class QuickSort {
public static void main(String[] args) {
Random random = new Random();
int[] arr = new int[10];
for (int i=0; i < arr.length; i++) {
arr[i] = random.nextInt(99);
}
myPrint(arr);
System.out.println("-----------------------------");
quickSort(arr,0,arr.length-1) ;
myPrint(arr);
}
public static void quickSort(int[] arr,int left,int right) {
int i = left;
int j = right;
int temp = 0;
if (i <= j) {
temp = arr[i];
while (i != j) {
while (i<j && temp <= arr[j]) {
j--;
}
arr[i] = arr[j];
while (i<j && arr[i] <= temp) {
i++;
}
arr[j] = arr[i];
}
arr[i] = temp;
quickSort(arr,left,i-1);
quickSort(arr,j+1,right);
}
}
public static void myPrint(int[] arr) {
for (int i=0;i < arr.length;i++) {
System.out.println(arr[i]);
}
}
}
1.2 scala实现
package scalaDemo.sort
object QuickSort {
def main(args: Array[String]): Unit = {
val arr = Array(9, 8, 7, 6, 5, 4, 3, 2, 1)
quickSort(arr, 0, arr.length - 1)
arr.foreach(println(_))
}
def quickSort(arr: Array[Int], left: Int, right: Int): Unit = {
var i = left
var j = right
var temp = 0
if (i <= j) {
temp = arr(left)
while (i < j) {
while (i < j && temp <= arr(j)) {
j -= 1
}
arr(i) = arr(j)
while (i < j && temp >= arr(i)) {
i += 1
}
arr(j) = arr(i)
}
arr(i) = temp
quickSort(arr, left, i - 1)
quickSort(arr, j + 1, right)
}
}
}
2.二分查找
package scalaDemo.sort
object BinarySearch {
def main(args: Array[String]): Unit = {
val array = Array(1, 3, 5, 7, 9, 11, 13, 15)
val index = binarySearch(array, 0, array.length - 1, 14)
if (index >= 0) {
println(s"index=$index value=${array(index)}")
} else {
println(s"index=$index:值不存在...")
}
}
def binarySearch(arr: Array[Int], left: Int, right: Int, value: Int): Int = {
var i = left
var j = right
var mid: Int = 0
if (i > j || value < arr(i) || value > arr(j)) {
return -1
}
mid = (i + j) / 2
if (value < arr(mid)) {
binarySearch(arr, i, mid - 1, value)
} else if (value > arr(mid)) {
binarySearch(arr, mid + 1, j, value)
} else {
mid
}
}
}