一,冒泡排序
package ch02;
/**
* 冒泡排序
* @author Administrator
*
*/
public class BubbleSort {
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;
}
}
}
}
public static void main(String[] args) {
long[] arr = new long[5];
arr[0] = 34;
arr[1] = 23;
arr[2] = 2;
arr[3] = 1;
arr[4] = -4;
System.out.print("[");
for(long num:arr){
System.out.print(" " +num+" ");
}
System.out.println("]");
System.out.println();
BubbleSort.sort(arr);
System.out.print("[");
for(long num:arr){
System.out.print(" " +num+" ");
}
System.out.println("]");
System.out.println();
}
}
二.选择排序
package ch02;
/**
* 选择排序
* @author Administrator
*
*/
public class SelectionSort {
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; //k始终指向最小的值
}
}
tmp = arr[i];//把开始的元素存入一个变量
arr[i] = arr[k];//把最小的元素给开始的位置
arr[k] = tmp;
}
}
public static void main(String[] args) {
long[] arr = new long[5];
arr[0] = 34;
arr[1] = 23;
arr[2] = 2;
arr[3] = 1;
arr[4] = -4;
System.out.print("[");
for(long num:arr){
System.out.print(" " +num+" ");
}
System.out.println("]");
System.out.println();
SelectionSort.sort(arr);
System.out.print("[");
for(long num:arr){
System.out.print(" " +num+" ");
}
System.out.println("]");
System.out.println();
}
}
三,插入排序
public class InsertSort {
public static void insertSort(int[] a) {
int i, j, insertNote;// 要插入的数据
for (i = 1; i < a.length; i++) {// 从数组的第二个元素开始循环将数组中的元素插入
insertNote = a[i];// 设置数组中的第2个元素为第一次循环要插入的数据
j = i - 1;
while (j >= 0 && insertNote < a[j]) {
a[j + 1] = a[j];// 如果要插入的元素小于第j个元素,就将第j个元素向后移动
j--;
}
a[j + 1] = insertNote;// 直到要插入的元素不小于第j个元素,将insertNote插入到数组中
}
}
public static void main(String[] args) {
int a[] = { 38,65,97,76,13,27,49 };
insertSort(a);
System.out.println(Arrays.toString(a));
}
}