标签:string middle package 最小 pac load 冒泡排序 log out
文章来自:http://www.iteye.com/topic/1129454
一、概括
1.冒泡排序
(1)基本思想:在一个序列元素中,比较相邻的两个数,如果相邻的数的顺序与想要输出的顺序相反就要进行交换,到序列末尾有序列中的最大值或者最小值在数组的一端。
(2)实例:
(3)优缺点
(4)性质
(5)Java代码实现
package sorts; public class 冒泡排序 { public static void main(String[] args) { int a[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51}; changeSort(a); } private static void changeSort(int[] a) { int temp; for(int i=0; i<a.length; i++){ for(int j=i+1; j<a.length; j++){ if(a[i]>a[j]){ temp = a[i]; a[i] = a[j]; a[j] = temp; } } } for(int k=0; k<a.length; k++) System.out.println(a[k]); } }
2.快速排序
(1)基本思想:
1.选择一个哨兵(序列中的第一个元素),序列中有两个标识元素分别指向序列的头部和尾部,两标识分别向中间归拢;
2.首先从序列末尾开始找小于哨兵的元素,找到元素和低位指针所指元素进行交换;
3.然后再从左向中找大于哨兵的元素然后交换高位指针所指向的元素;
4.循环以上的步骤,直到两个指针标识碰头完成一次排序;
5.然后再递归,被分开的子序列进行同样的操作。直到子序列中只剩下两个元素,停止递归,完成排序。
(2)实例:
(3)优缺点
(4)性质
(5)Java代码实现
package sorts; public class 快速排序 { public static void main(String[] args) { int a[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51}; quick(a); for(int i=0; i<a.length;i++){ System.out.println(a[i]); } } private static void quick(int[] a2) { //查看数组是否为空 if(a2.length>0){ _quickSort(a2,0,a2.length-1); } } //递归对子序列进行排序 private static void _quickSort(int[] list, int low, int high) { if(low<high){ int middle = getMiddle(list,low,high); _quickSort(list,low,middle-1); _quickSort(list,middle+1,high); } } private static int getMiddle(int[] list, int low, int high) { int tmp = list[low]; while(low<high){ while(low<high && list[high]>=tmp){ high--; } list[low] = list[high]; while(low<high && list[low] <= tmp){ low++; } list[high]=list[low]; } list[low]=tmp; return low; } }
标签:string middle package 最小 pac load 冒泡排序 log out
原文地址:http://www.cnblogs.com/jinb/p/7062399.html