码迷,mamicode.com
首页 > 编程语言 > 详细

【上班时间学算法】

时间:2015-06-12 18:57:17      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:

各路算法-Java代码

算法示例图稍后呈现

插入排序

原理:每遍历数组里面一个元素,便遍历当前元素前面的所有元素 

特点:准确率高、效率低

 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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!