span else i++ ava while public div int
两种方法都编译运行通过,可以当做排序类直接使用。
折半插入排序:
- public class Sort1 {
- public static void main(String[] args) {
- InsertSort sort = new InsertSort();
- sort.InsertSort();
- int[] arr = sort.getarr();
- System.out.println();
- System.out.println("排序之后:");
- for (int ar : arr) {
- System.out.print(ar + " ");
- }
- }
- }
- class InsertSort {
- int[] a = { 49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 1 };
- int i,high,low,mid;
- int temp;
- public int[] getarr() {
- return a;
- }
- public void InsertSort() {
- System.out.println("排序之前:");
- for (int m : a) {
- System.out.print(m + " ");
- }
- for(int i=1;i<a.length;i++)
- {
- temp=a[i];
- low = 0;
- high = i-1;
- while(low<=high)
- {
- mid = (low + high)/2;
- if (temp<a[mid])
- {
- high = mid -1;
- }
- else
- {
- low = mid +1;
- }
- }
- for(int j=i-1;j>=high+1;j--)
- {
- a[j+1] = a[j];
- }
- a[high+1] = temp;
- }
- }
- }
直接插入排序:
- public class Sort1 {
- public static void main(String[] args) {
- InsertSort sort = new InsertSort();
- sort.InsertSort();
- int[] arr = sort.getarr();
- System.out.println();
- System.out.println("排序之后:");
- for (int ar : arr) {
- System.out.print(ar + " ");
- }
- }
- }
- class InsertSort {
- int[] a = { 49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 1 };
- public int[] getarr() {
- return a;
- }
- public void InsertSort() {
- System.out.println("排序之前:");
- for (int m : a) {
- System.out.print(m + " ");
- }
- for (int i = 1; i < a.length; i++) {
- int temp = a[i];
- int j;
- for (j = i - 1; j >= 0 && a[j] > temp; j--) {
- a[j + 1] = a[j];
- }
- a[j + 1] = temp;
- }
- }
- }
两种插入排序算法java实现
来源: http://www.bubuko.com/infodetail-2284574.html