java小算法——快排—避坑

package com.yang;
public class QuickPaiX {
//快排的实现
//实现原理:选定一个基数,其他的元素与基数进行比较
// 小的放在其左边与其位置交换,大的放在其右边与其交换后的位置进行交换;
// 一个整的循环结束,整个数组的元素小的就在其左边,大的就在其右边;基数就处于中间位置
//接着进行分别基数左边的元素进行递归,右边的元素进行递归
public static int[] quickPaiX(int [] arr,int begin,int end){
if(begin>=end){
return null;
}
//使用最左边的数作为基数
int base=arr[begin];
int i=begin;
int j=end;

    //当i<j时候才进行整个循环;
    while(i<j){
        //从end位置循环查找比基数小的数(包括等于)
        while(i<j&&arr[j]>=base){
            j--;
        }
        //从最左边begin位置寻找比基数大的数(包括等于)
        while(i<j&&arr[i]<=base){
            i++;
        }
        //寻找到之后进行位置大的交
        if(i<j) {
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    }
    //一个整的循环结束后分别对基数两边的元素进行递归
    //交换基数的位置
    arr[begin]=arr[i];
    arr[i]=base;
    quickPaiX(arr,begin,i-1);
    quickPaiX(arr,i+1,end);
    return arr;
}
public static void main(String[] args){
    int[] a={5,6,7,1,2};
    int[] arr=quickPaiX(a,0,a.length-1);
    for(int i=0;i<arr.length;i++){
        System.out.print(arr[i]);
    }
}

}
这是经过各种坑之后写的相对标准以及更好理解的代码。

项目完整可用,配合压缩包内数据库可直接运行使用。 eclipse+mysql5.7+jdk1.8 功能:推荐引擎利用特殊的信息过滤(IF,Information Filtering)技术,将不同的内容(例如电影、音乐、书籍、新闻、图片、网页等)推荐给可能感兴趣的用户。通常情况下,推荐引擎的实现是通过将用户的个人喜好与特定的参考特征进行比较,并试图预测用户对一些未评分项目的喜好程度。参考特征的选取可能是从项目本身的信息中提取的,或是基于用户所在的社会或社团环境。 根据如何抽取参考特征,我们可以将推荐引擎分为以下四大类: • 基于内容的推荐引擎:它将计算得到并推荐给用户一些与该用户已选择过的项目相似的内容。例如,当你在网上购书时,你总是购买与历史相关的书籍,那么基于内容的推荐引擎就会给你推荐一些热门的历史方面的书籍。 • 基于协同过滤的推荐引擎:它将推荐给用户一些与该用户品味相似的其他用户喜欢的内容。例如,当你在网上买衣服时,基于协同过滤的推荐引擎会根据你的历史购买记录或是浏览记录,分析出你的穿衣品位,并找到与你品味相似的一些用户,将他们浏览和购买的衣服推荐给你。 • 基于关联规则的推荐引擎:它将推荐给用户一些采用关联规则发现算法计算出的内容。关联规则的发现算法有很多,如 Apriori、AprioriTid、DHP、FP-tree 等。 • 混合推荐引擎:结合以上各种,得到一个更加全面的推荐效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值