标签:
算法示例图稍后呈现
原理:每遍历数组里面一个元素,便遍历当前元素前面的所有元素
特点:准确率高、效率低
1 int a[] = {2,4,1,8,9,20,11,34,12}; 2 //双重循环:外层进行数组长度次控制 3 for(int i = 1; i < a.length ; i++){ 4 //内部让当前数和前面的所有数,进行比较 5 for (int j = 0; j < i; j++) { 6 if(a[i] < a[j]){ 7 //换位置 8 int temp = a[i]; 9 a[i] = a[j]; 10 a[j] = temp; 11 } 12 } 13 14 } 15 //打印 16 for(int item : a){ 17 System.out.println(item); 18 }
原理:分治思想实现,利用递归,对数组进行n次分区、比较,直接看代码
特点:在针对大数据、乱数据的情况下,效率极高
1 public static void sort(int []a,int left,int right){ 2 int start = left; 3 int end = right; 4 //起始位小于终止位 5 if(start < end){ 6 while(start < end){ 7 //升序 8 if(a[start] >= a[end]){ 9 //位置置换 10 int temp = a[start]; 11 a[start] = a[end]; 12 a[end] = temp; 13 //移动指标,下同 14 start++; 15 }else{ 16 end--; 17 } 18 } 19 //左边 20 sort(a,left,end); 21 //右边 22 sort(a,end + 1,right); 23 } 24 }
标签:
原文地址:http://www.cnblogs.com/iNewbie/p/4565758.html