Java排序算法

来源:互联网 发布:mysql数据库创建表格 编辑:程序博客网 时间:2024/06/04 18:39

排序算法是应该要掌握的,数据结构的东西,包括算法思想,排序程序的处理过程,时间复杂度空间复杂度什么的。

这个东西可能技术含量不高,但是对于大学生来说绝对是相当有用的。

话不多说,直接上代码(代码已经调试完毕)

/* * 排序算法名:冒泡排序 * 算法思想:依次比较相邻的两个数,统一将较小的(较大的)往前面(后面)置换 * 是否稳定:稳定排序 * 算法时间复杂度:O(n^2) */public class bubble_sort {public static void main(String[] args) {int i,j,temp;int[] array = { 46, 58, 15, 45, 90, 18, 10, 62 };//输出排序前序列for(int a: array)System.out.print(a + " ");System.out.println();//冒泡排序for(i = 0; i < array.length; i++ )for(j = (array.length - 1); j > i; j--) {if(array[j] < array[j-1]) {//如果靠后的数比较小,就与前一个数交换位置temp = array[j];array[j] = array[j-1];array[j-1] = temp;}}//输出排序后序列for(int a: array)System.out.print(a + " ");}}
/* * 排序算法名:直接选择排序 * 算法思想:第一次循环,选出最小(最大)放在第一个,依次选出次小(次大)放到紧接着的次位 * 是否稳定:不稳定排序 * 算法时间复杂度:O(n^2) */public class select_sort {public static void main(String[] args) {int array[] = {2,3,1,5,8,4};//输出排序前的序列for(int i:array)System.out.print(i+" ");System.out.println();//进行选择排序selectSort(array,array.length);//输出排序后的序列for(int i:array)System.out.print(i+" ");System.out.println();System.out.println(count);}static int count = 0; //计算交换次数//选择排序函数体static void selectSort(int a[],int n) {int i,j,temp;for( i=0 ; i<n-1 ; i++) for( j=i+1 ; j<n ; j++) {if(a[i] > a[j]) {temp = a[i];a[i] = a[j];a[j] = temp;count++;}}}}
/* * 排序算法名:直接插入排序 * 排序思想:把一个数前面的所有数看成排好序的序列,该数和它前一个数比较, * 若该数较大则不操作,较小交换位置,同样的方法依次比较到第一个数。 * 是否稳定:稳定排序 * 算法时间复杂度:O(n^2) */public class insert_sort {public static void main(String[] args) {int[] array = { 46, 58, 15, 45, 90, 18, 10, 62 };new insert_sort().insertSort(array,array.length);for(int a:array)System.out.print(a+" ");}void insertSort(int a[],int n) {int i, j;for (i = 1; i < n; i++) {int temp = a[i];for (j = i-1 ; j >= 0 && temp < a[j]; j--)a[j+1] = a[j];a[j+1] = temp;}}}






原创粉丝点击