标题 | java多种排序方法代码集合 |
范文 | 最近在学习java,想练习一下编写,使用了eclipse编写了如下的排序代码。其中包含了快速排序, 选择排序,插入排序,冒泡排序。 /* * * Roc * * 2013/10/4 * * 此段代码主要是通过java来实现多种排序 * */ package Sorting; import java.util.Scanner; public class sorting { //直接插入排序 static void InsertSort(int a[]){ for (int i = 1; i < a.length; i++){ int t = a[i]; int j = i; while ((j > 0) && (a[j-1] > t)){ a[j] = a[j-1]; --j; } a[j] = t; } } //快速排序 static void QuickSort(int a[], int low, int high){ int index[] = new int[2];//用于保存划分方法返回的结果 if (low < high){ Partition(a, low, high, index);//划分L[low..high] QuickSort(a, low, index[0]); QuickSort(a, index[1], high); } } static void Partition(int a[], int p, int r, int ind[]){ int i, j, k, pivot; pivot = a[(p+r)/2]; i = p; j = p; k = r; while (j != k){ if (a[j] == pivot){ j++; } else if (a[j] < pivot){ swap(a[j], a[i]); j++; i++; } else { swap(a[j], a[k-1]); k--; } } ind[0] = i; ind[1] = j; } //用于整数之间进行的交换 static void swap(int a, int b){ int temp; temp = a; a = b; b = temp; } //选择排序 static void SelectionSort(int a[]){ int min; for (int j = 0; j < a.length-1; j++){ min = j; for (int k = j+1; k < a.length; k++){ if (a[k] < a[min]) min = k; } swap(a[min], a[j]); } } //冒泡排序 static void BubbleSort(int a[]){ for (int i = 0; i < a.length; i++){ for (int j = 0; j < a.length-i-1; j++){ if (a[j] > a[j+1]) swap(a[j], a[j+1]); } } } static void PrintThem(int a[]){ System.out.println("\nAfter sorted, they are: "); for (int i = 0; i < a.length; i++) System.out.print(a[i]+" "); } public static void main(String[] args){ int number1, number2; int low, high; Scanner reader = new Scanner(System.in); System.out.print("How many numbers you want to sort: "); number1 = reader.nextInt(); int a[] = new int[number1]; System.out.println("\nNow, input them here: "); for (int i = 0; i < a.length; i++) a[i] = reader.nextInt(); System.out.println("\t\tChose one of way to sort them: "); System.out.println("\t1.Insert Sort \t 2.Quick Sort \t " + "3.Select Sort \t 4.Bubble Sort \t 0.Abort"); System.out.print("Input your chose here: "); number2 = reader.nextInt(); while (number2 != 0){ switch (number2){ case 1: InsertSort(a); PrintThem(a); break; case 2: low = 0; high = a.length; QuickSort(a, low, high); PrintThem(a); break; case 3: SelectionSort(a); PrintThem(a); break; case 4: BubbleSort(a); PrintThem(a); break; default: System.out.println("Input error! Try later!"); break; } System.out.println("\n\n1.Insert Sort \t 2.Quick Sort \t" + " 3.Select Sort \t 4.Bubble Sort \t 0.Abort"); System.out.print("Input your chose here: "); number2 = reader.nextInt(); } if (number2 == 0) System.out.print("\tBye~Bye~"); } } |
随便看 |
|
在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。