排序算法Java实现
来源:互联网 发布:js中的classname 编辑:程序博客网 时间:2024/05/19 19:41
import java.util.Random;public class Sort {//Bubble sort 时间复杂度为O(n^2)public void bubbleSort(int a[]){int temp = 0;int count = 0;for(int i=0;i<a.length;++i){count = 0;for(int j=0;j<a.length-1;++j){if(a[j]>a[j+1]){temp = a[j];a[j] = a[j+1];a[j+1] = temp;++count;}}System.out.println("i="+i+",count="+count);if(count==0)break;}}//Select Sort 时间复杂度为O(n^2)public void selectSort(int a[]){int min_index= 0;int temp = 0;for(int i=0;i<a.length;++i){min_index = i; for(int j=i+1;j<a.length;++j){if(a[j]<a[min_index])min_index = j;}if(min_index!=i){temp = a[min_index];a[min_index] = a[i];a[i] = temp;}}}//insert sort 时间复杂度为O(n^2)public void insertSort(int a[]){int temp = 0;int j = 0;for(int i=1;i<a.length;++i){if(a[i]<a[i-1]){temp = a[i];j = i-1;do{a[j+1] = a[j];--j;}while(j>=0 && temp<a[j]);a[j+1] = temp;}}}//Shell Sort public void shellSort(int a[]){int gap = a.length;int j = 0;int temp = 0;do{gap = gap/3+1;for(int i=gap;i<a.length;++i){if(a[i]<a[i-gap]){temp = a[i];j = i-gap;do{a[j+gap] = a[j];j -= gap;}while(j>=0 && temp<a[j]);a[j+gap] = temp;}}}while(gap>1);}//Quick Sort 时间复杂度为O(n*log2 n)void quickSort(int arr[],final int left,final int right){if(left<right){int pivotpos = partition(arr,left,right);quickSort(arr,left,pivotpos-1);quickSort(arr,pivotpos+1,right);}}int partition(int arr[],final int low,final int high){int pivotpos = low;int temp = 0;for(int i=low+1;i<=high;++i){if(arr[low]>arr[i]){++pivotpos;if(pivotpos!=i){temp = arr[i];arr[i] = arr[pivotpos];arr[pivotpos] = temp;}}}temp = arr[low];arr[low] = arr[pivotpos];arr[pivotpos] = temp;return pivotpos;}public static void main(String[]args){final int SIZE = 30;int arr[]=new int[SIZE];Sort sort = new Sort();Random rand = new Random();for(int i=0;i<SIZE;++i){//produce random number,maximum is 100arr[i] = rand.nextInt(100);System.out.print(arr[i]+" ");}System.out.println();/****************************************************************System.out.println("Bubble Sort:");sort.bubbleSort(arr);for(int i=0;i<arr.length;i++){System.out.print(arr[i]+" ");}System.out.println();****************************************************************//**************************************************************System.out.println("Select Sort:");sort.selectSort(arr);for(int i=0;i<arr.length;++i)System.out.print(arr[i]+" ");System.out.println();***************************************************************//**************************************************************System.out.println("Insert Sort:");sort.insertSort(arr);for(int i=0;i<arr.length;++i)System.out.print(arr[i]+" ");System.out.println();****************************************************************//***************************************************************System.out.println("Shell Sort:");sort.shellSort(arr);for(int i=0;i<arr.length;++i)System.out.print(arr[i]+" ");System.out.println();*****************************************************************//****************************************************************/System.out.println("Quick Sort:");sort.quickSort(arr, 0, arr.length-1);//int a[] = {21,25,16,8,60,49};//sort.quickSort(a, 0, a.length-1);for(int i=0;i<arr.length;++i)System.out.print(arr[i]+" ");System.out.println();}}
更多排序算法有个博客链接排序算法总结!
0 0
- 排序算法java实现
- java算法:排序实现
- 排序算法Java实现
- java实现排序算法
- 排序算法(java实现)
- 排序算法Java实现
- 排序算法Java实现
- Java排序算法实现
- java排序算法实现
- java实现排序算法
- 排序算法 java实现
- 排序算法Java实现
- java实现排序算法
- 排序算法java实现
- java实现排序算法
- java 排序算法实现
- Java实现排序算法
- 排序算法java实现
- 关于数组的几道面试题
- for和foreach的区别
- HQL中使用case when
- HTML5 网站
- Web Service
- 排序算法Java实现
- XML 与 HTML 的主要区别
- Android ListView和ListAdapter
- JAXP 验证
- 浏览器执行JS出错修复
- varchar和nvarchar
- AFNetworking、MKNetworkKit和ASIHTTPRequest比较
- 【Response】乱码、下载、验证码、刷新、缓存、重定向
- 智能循迹避障小车&抢答器