冒泡排序
package day_2;
public class BubbleSortFunc {
public static void sort(long[] arr) {
long tmp = 0;
for(int i = 0;i<arr.length-1;i++) {
for(int j = arr.length-1;j>i;j--) {
if(arr[j] < arr[j-1]) {
//进行交换
tmp = arr[j];
arr[j] = arr[j-1];
arr[j-1] = tmp;
}
}
}
}
}
选择排序
package day_2;
public class SelectionSortFunc {
public static void sort(long[] arr) {
int k = 0;
long tmp = 0;
for(int i = 0;i<arr.length-1;i++) {
k = i;
for(int j = i;j<arr.length;j++) {
if(arr[j] <arr[k]) {
k = j;
}
}
tmp = arr[i];
arr[i] = arr[k];
arr[k] = tmp;
}
}
}
插入排序
package day_2;
public class InsertSortFunc {
public static void InsertSort(long[] arr) {
long tmp = 0;
for(int i = 1;i<arr.length;i++) {
tmp = arr[i];
int j = i;
while(j>0 && arr[j]>=tmp) {
arr[j] = arr[j-1];
j--;
}
arr[j] = tmp;
}
}
}
测试:
package day_2;
public class BubbleSort {
public static void main(String[] args) {
// TODO Auto-generated method stub
long[] arr = new long[5];
arr[0] = 34;
arr[1] = 23;
arr[2] = 2;
arr[3] = 1;
arr[4] = 32;
//BubbleSortFunc bs = new BubbleSortFunc();
//bs.sort(arr);
//比冒泡排序效率要高 交换次数比较少
//SelectionSortFunc ss = new SelectionSortFunc();
//ss.sort(arr);
InsertSortFunc is = new InsertSortFunc();
is.InsertSort(arr);
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}