❶ java冒泡排序法代碼
冒泡排序是比較經典的排序演算法。代碼如下:
for(int i=1;i<arr.length;i++){
for(int j=1;j<arr.length-i;j++){
//交換位置
}
拓展資料:
原理:比較兩個相鄰的元素,將值大的元素交換至右端。
思路:依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟:首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重復第一趟步驟,直至全部排序完成。
第一趟比較完成後,最後一個數一定是數組中最大的一個數,所以第二趟比較的時候最後一個數不參與比較;
第二趟比較完成後,倒數第二個數也一定是數組中第二大的數,所以第三趟比較的時候最後兩個數不參與比較;
依次類推,每一趟比較次數-1;
??
舉例說明:要排序數組:int[]arr={6,3,8,2,9,1};
for(int i=1;i<arr.length;i++){
for(int j=1;j<arr.length-i;j++){
//交換位置
}
❷ java實現bp演算法
package ml;
import java.util.Random;
/**
* BPNN.
*
* @author RenaQiu
*
*/
public class BP {
/**
* input vector.
*/
private final double[] input;
/**
* hidden layer.
*/
private final double[] hidden;
/**
* output layer.
*/
private final double[] output;
/**
* target.
*/
private final double[] target;
/**
* delta vector of the hidden layer .
*/
private final double[] hidDelta;
/**
* output layer of the output layer.
*/
private final double[] optDelta;
/**
* learning rate.
*/
private final double eta;
/**
* momentum.
*/
private final double momentum;
/**
* weight matrix from input layer to hidden layer.
*/
private final double[][] iptHidWeights;
/**
* weight matrix from hidden layer to output layer.
*/
private final double[][] hidOptWeights;
/**
* previous weight update.
*/
private final double[][] iptHidPrevUptWeights;
/**
* previous weight update.
*/
private final double[][] hidOptPrevUptWeights;
public double optErrSum = 0d;
public double hidErrSum = 0d;
private final Random random;
/**
* Constructor.
* <p>
* <strong>Note:</strong> The capacity of each layer will be the parameter
* plus 1. The additional unit is used for smoothness.
* </p>
*
* @param inputSize
* @param hiddenSize
* @param outputSize
* @param eta
* @param momentum
* @param epoch
*/
public BP(int inputSize, int hiddenSize, int outputSize, double eta,
double momentum) {
input = new double[inputSize + 1];
hidden = new double[hiddenSize + 1];
output = new double[outputSize + 1];
target = new double[outputSize + 1];
hidDelta = new double[hiddenSize + 1];
optDelta = new double[outputSize + 1];
iptHidWeights = new double[inputSize + 1][hiddenSize + 1];
hidOptWeights = new double[hiddenSize + 1][outputSize + 1];
random = new Random(19881211);
randomizeWeights(iptHidWeights);
randomizeWeights(hidOptWeights);
iptHidPrevUptWeights = new double[inputSize + 1][hiddenSize + 1];
hidOptPrevUptWeights = new double[hiddenSize + 1][outputSize + 1];
this.eta = eta;
this.momentum = momentum;
}
private void randomizeWeights(double[][] matrix) {
for (int i = 0, len = matrix.length; i != len; i++)
for (int j = 0, len2 = matrix[i].length; j != len2; j++) {
double real = random.nextDouble();
matrix[i][j] = random.nextDouble() > 0.5 ? real : -real;
}
}
/**
* Constructor with default eta = 0.25 and momentum = 0.3.
*
* @param inputSize
* @param hiddenSize
* @param outputSize
* @param epoch
*/
public BP(int inputSize, int hiddenSize, int outputSize) {
this(inputSize, hiddenSize, outputSize, 0.25, 0.9);
}
/**
* Entry method. The train data should be a one-dim vector.
*
* @param trainData
* @param target
*/
public void train(double[] trainData, double[] target) {
loadInput(trainData);
loadTarget(target);
forward();
calculateDelta();
adjustWeight();
}
/**
* Test the BPNN.
*
* @param inData
* @return
*/
public double[] test(double[] inData) {
if (inData.length != input.length - 1) {
throw new IllegalArgumentException("Size Do Not Match.");
}
System.array(inData, 0, input, 1, inData.length);
forward();
return getNetworkOutput();
}
/**
* Return the output layer.
*
* @return
*/
private double[] getNetworkOutput() {
int len = output.length;
double[] temp = new double[len - 1];
for (int i = 1; i != len; i++)
temp[i - 1] = output[i];
return temp;
}
/**
* Load the target data.
*
* @param arg
*/
private void loadTarget(double[] arg) {
if (arg.length != target.length - 1) {
throw new IllegalArgumentException("Size Do Not Match.");
}
System.array(arg, 0, target, 1, arg.length);
}
/**
* Load the training data.
*
* @param inData
*/
private void loadInput(double[] inData) {
if (inData.length != input.length - 1) {
throw new IllegalArgumentException("Size Do Not Match.");
}
System.array(inData, 0, input, 1, inData.length);
}
/**
* Forward.
*
* @param layer0
* @param layer1
* @param weight
*/
private void forward(double[] layer0, double[] layer1, double[][] weight) {
// threshold unit.
layer0[0] = 1.0;
for (int j = 1, len = layer1.length; j != len; ++j) {
double sum = 0;
for (int i = 0, len2 = layer0.length; i != len2; ++i)
sum += weight[i][j] * layer0[i];
layer1[j] = sigmoid(sum);
}
}
/**
* Forward.
*/
private void forward() {
forward(input, hidden, iptHidWeights);
forward(hidden, output, hidOptWeights);
}
/**
* Calculate output error.
*/
private void outputErr() {
double errSum = 0;
for (int idx = 1, len = optDelta.length; idx != len; ++idx) {
double o = output[idx];
optDelta[idx] = o * (1d - o) * (target[idx] - o);
errSum += Math.abs(optDelta[idx]);
}
optErrSum = errSum;
}
/**
* Calculate hidden errors.
*/
private void hiddenErr() {
double errSum = 0;
for (int j = 1, len = hidDelta.length; j != len; ++j) {
double o = hidden[j];
double sum = 0;
for (int k = 1, len2 = optDelta.length; k != len2; ++k)
sum += hidOptWeights[j][k] * optDelta[k];
hidDelta[j] = o * (1d - o) * sum;
errSum += Math.abs(hidDelta[j]);
}
hidErrSum = errSum;
}
/**
* Calculate errors of all layers.
*/
private void calculateDelta() {
outputErr();
hiddenErr();
}
/**
* Adjust the weight matrix.
*
* @param delta
* @param layer
* @param weight
* @param prevWeight
*/
private void adjustWeight(double[] delta, double[] layer,
double[][] weight, double[][] prevWeight) {
layer[0] = 1;
for (int i = 1, len = delta.length; i != len; ++i) {
for (int j = 0, len2 = layer.length; j != len2; ++j) {
double newVal = momentum * prevWeight[j][i] + eta * delta[i]
* layer[j];
weight[j][i] += newVal;
prevWeight[j][i] = newVal;
}
}
}
/**
* Adjust all weight matrices.
*/
private void adjustWeight() {
adjustWeight(optDelta, hidden, hidOptWeights, hidOptPrevUptWeights);
adjustWeight(hidDelta, input, iptHidWeights, iptHidPrevUptWeights);
}
/**
* Sigmoid.
*
* @param val
* @return
*/
private double sigmoid(double val) {
return 1d / (1d + Math.exp(-val));
}
}
❸ 如何用JAVA實現快速排序演算法
本人特地給你編的代碼x0dx0a親測{(inta[],intp,intr){x0dx0aintx=a[r-1];x0dx0ainti=p-1;x0dx0ainttemp;x0dx0afor(intj=p;j<=r-1;j++){x0dx0aif(a[j-1]<=x){x0dx0a//swap(a[j-1],a[i-1]);x0dx0ai++;x0dx0atemp=a[j-1];x0dx0aa[j-1]=a[i-1];x0dx0aa[i-1]=temp;x0dx0ax0dx0a}x0dx0a}x0dx0a//swap(a[r-1,a[i+1-1]);x0dx0atemp=a[r-1];x0dx0aa[r-1]=a[i+1-1];x0dx0aa[i+1-1]=temp;x0dx0ax0dx0areturni+1;x0dx0ax0dx0a}x0dx0ax0dx0apublicstaticvoidQuickSort(inta[],intp,intr){x0dx0ax0dx0aif(p ❹ 關於Java的分頁演算法,急!
使用分頁類,直接調用就可以,代碼如下: ❺ 求使用java實現的快排演算法 ① 代碼: ② 運行: ❻ java圖形界面實現圖片自動輪播
現在沒空幫你寫代碼了,給你個思路自己寫吧!輪播肯定是要切換圖片的,並且一般切換的時候是從左到右或從右到左慢慢切的,所以你定義一個圖片地址數組,再定義兩個jlabel用來顯示圖片,一個JLabel顯示當前圖片,另一個顯示最新圖片!好了,現在你定義一個timer定時器來切換,每隔兩秒,就判斷一下最新的圖片是哪個jlabel,然後將另一個jlabel填充新的圖片,然後setlocation()來移動圖片,x坐標每次向左幾個像素,直至移動完成!這樣就是一次輪播,當然你需要將兩個jlabel放到一個panel中,免得會出現第二個圖片多出一截在慢慢移動的情況
❼ java中基數排序演算法代碼
package com.godwin.news.util;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.ArrayList;
/**
* 分頁類,用於封閉分頁顯示信息
*
* @author javabs
*
*/
public class Pager {
// 當前頁
private int currentPage;
// 總頁數
private int totalPage;
// 總記錄數
private int totalRecord;
// 每頁條數
private int pageSize;
// 是否有下一頁
private int hasNext;
private ArrayList keys;
private ArrayList values;
// 查詢串
private String queryString;
// 首頁
private String firstLink;
// 上一頁
private String previousLink;
// 下一頁
private String nextLink;
// 尾頁
private String lastLink;
// 鏈接
private String forScriptLink;
public Pager(int pageSize, String queryString) {
keys = new ArrayList();
values = new ArrayList();
setQueryString(queryString);
setPageSize(pageSize);
}
public String getForScriptLink() {
if (keys.contains("toPage"))
removeKey("toPage");
String tmp = getQueryString();
if (tmp.length() == 0)
return "?";
else
return "?" + tmp + "&";
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(String toPage) {
int tmpage = 1;
try {
tmpage = Integer.parseInt(toPage);
} catch (NumberFormatException e) {
tmpage = 1;
}
if (tmpage < 1)
tmpage = 1;
else if (tmpage > getTotalPage())
tmpage = getTotalPage();
currentPage = tmpage;
}
public String getFirstLink() {
return getQueryStr(1);
}
public int getHasNext() {
int i = 1;
if (getCurrentPage() >= getTotalPage())
i = 0;
return i;
}
public String getLastLink() {
return getQueryStr(getTotalPage());
}
public String getNextLink() {
return getQueryStr(currentPage == totalPage ? currentPage : (currentPage + 1));
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public String getPreviousLink() {
return getQueryStr(currentPage == 1 ? currentPage : currentPage - 1);
}
public void setPreviousLink(String previousLink) {
this.previousLink = previousLink;
}
public String getQueryString() {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < keys.size(); i++) {
String key = (String) keys.get(i);
String value = (String) values.get(i);
sb.append("&");
sb.append(key);
sb.append("=");
sb.append(value);
}
return sb.delete(0, 1).toString();
}
public void setQueryString(String queryString) {
if (queryString != null) {
String s[] = queryString.split("&");
for (int i = 0; i < s.length; i++) {
String s1[] = s[i].split("=");
if (s1.length == 2) {
keys.add(s1[0]);
values.add(s1[1]);
} else {
keys.add(s1[0]);
values.add("");
}
}
}
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage() {
if (totalRecord % pageSize == 0) {
totalPage = totalRecord / pageSize;
totalPage = totalPage == 0 ? 1 : totalPage;
}
else
totalPage = totalRecord / pageSize + 1;
}
public int getTotalRecord() {
return totalRecord;
}
public void setTotalRecord(int totalRecord) {
this.totalRecord = totalRecord;
setTotalPage();
}
public String[] getQueryParameterValues(String key) {
return getQueryParameterValues(key, "UTF-8");
}
public String[] getQueryParameterValues(String key, String decode) {
ArrayList ret = new ArrayList();
for (int i = 0; i < keys.size(); i++)
if (((String) keys.get(i)).equals(key))
try {
ret.add(URLDecoder.decode((String) values.get(i), decode));
} catch (UnsupportedEncodingException e) {
ret.add((String) values.get(i));
}
if (ret.size() == 0)
return null;
String strArr[] = new String[ret.size()];
for (int i = 0; i < ret.size(); i++)
strArr[i] = (String) ret.get(i);
return strArr;
}
public String getQueryParameter(String key) {
return getQueryParameter(key, "UTF-8");
}
public String getQueryParameter(String key, String decode) {
String value = "";
if (key != "toPage") {
try {
value = URLDecoder.decode(getValue(key), decode);
} catch (UnsupportedEncodingException e) {
value = getValue(key);
}
} else {
int tmpage = 1;
try {
value = getValue(key);
tmpage = Integer.parseInt(value);
} catch (NumberFormatException e) {
tmpage = 1;
} catch (NullPointerException e1) {
tmpage = 1;
}
if (tmpage < 1)
tmpage = 1;
else if (tmpage > getTotalPage())
tmpage = getTotalPage();
value = (new StringBuffer(String.valueOf(tmpage))).toString();
}
return value;
}
public void setQueryParameter(String key, String value) {
if (key.equals("toPage"))
removeKey(key);
keys.add(key);
values.add(value);
}
public String getQueryStr(int toPage) {
setQueryParameter("toPage", (new StringBuffer(String.valueOf(toPage))).toString());
return "?" + getQueryString();
}
private String getValue(String key) {
String ret = "";
for (int i = 0; i < keys.size(); i++) {
if (!((String) keys.get(i)).equals(key))
continue;
ret = (String) values.get(i);
break;
}
return ret;
}
private void removeKey(String key) {
for (int i = 0; i < keys.size(); i++) {
if (!((String) keys.get(i)).equals(key))
continue;
keys.remove(i);
values.remove(i);
break;
}
}
public static void main(String args[]) {
String str = "a=中文aa&b=2&c=3&c=4&c=5";
Pager page = new Pager(2, str);
page.setTotalRecord(10);
page.setCurrentPage("1");
System.out.println(page.getFirstLink());
System.out.println(page.getPreviousLink());
System.out.println(page.getNextLink());
System.out.println(page.getLastLink());
String s = page.getQueryParameter("a");
System.out.println("s: " + s);
}
}
publicclassquicksortdemo{
privateintarray[];
privateintlength;
publicvoidsort(int[]inputArr){
if(inputArr==null||inputArr.length==0){
return;
}
this.array=inputArr;
length=inputArr.length;
quickSort(0,length-1);
}
privatevoidquickSort(intlowerIndex,inthigherIndex){
inti=lowerIndex;
intj=higherIndex;
//calculatepivotnumber
intpivot=array[lowerIndex+(higherIndex-lowerIndex)/2];
//Divideintotwoarrays
while(i<=j){
while(array[i]<pivot){
i++;
}
while(array[j]>pivot){
j--;
}
if(i<=j){
swap(i,j);
i++;
j--;
}
}
//callquickSort()methodrecursively
if(lowerIndex<j)
quickSort(lowerIndex,j);
if(i<higherIndex)
quickSort(i,higherIndex);
}
privatevoidswap(inti,intj){
inttemp=array[i];
array[i]=array[j];
array[j]=temp;
}
publicstaticvoidmain(Stringa[]){
quicksortdemosorter=newquicksortdemo();
int[]input={24,2,45,20,56,75,2,56,99,53,12};
sorter.sort(input);
for(inti:input){
System.out.print(i);
System.out.print("");
}
}
}c:>javaquicksortdemo
22122024455356567599/**
*冒泡法排序<br/>
*<li>比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。</li>
*<li>對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。</li>
*<li>針對所有的元素重復以上的步驟,除了最後一個。</li>
*<li>持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。</li>
*
*@paramnumbers
*需要排序的整型數組
*/
publicstaticvoidbubbleSort(int[]numbers){
inttemp;//記錄臨時中間值
intsize=numbers.length;//數組大小
for(inti=0;i<size-1;i++){
for(intj=i+1;j<size;j++){
if(numbers[i]<numbers[j]){//交換兩數的位置
temp=numbers[i];
numbers[i]=numbers[j];
numbers[j]=temp;
}
}
}
}
❽ 求java編程的代碼
代碼如下,望採納
publicclassPrintPrime{
publicstaticvoidmain(Stringargs[]){
//設置一個計數變數count,用於統計一行當中已經輸出數字的個數
intcount=0;
//寫代碼時人為判斷200為非素數,如果不考慮題目的嚴格要求的話,可以寫成<200
for(inti=100;i<=200;i++){
//判斷數字是否為素數,若是,則count+1並輸出數字
if(PrintPrime.IsPrime(i)){
count++;
System.out.print(i+"");
}
//如果一行十個已經輸出完畢,計數歸零,換行
if(count==10){
count=0;
System.out.println();
}
}
}
//判斷數字是否為素數
publicstaticbooleanIsPrime(intn){
//如果小於等於三,則大於一即為素數
if(n<=3){
returnn>1;
}
//從2循環到數字的開平方,演算法優化
for(inti=2;i<=Math.sqrt(n);i++){
if(n%i==0)
returnfalse;
}
returntrue;
}
}
❾ 關於這個java代碼的解釋,每句的解釋,請大手幫忙!!!
肯定不是你能寫的。改也不好改!
有些東西會用它就行了,沒必要死扣!
❿ 如何用java實現fifo頁面置換演算法
[fifo.rar] - 操作系統中內存頁面的先進先出的替換演算法fifo
[先進先出頁面演算法程序.rar] - 分別實現最佳置換演算法(optimal)、先進先出(fifo)頁面置換演算法和最近最久未使用(LRU)置換演算法,並給出各演算法缺頁次數和缺頁率。
[0022.rar] - 模擬分頁式虛擬存儲管理中硬體的地址轉換和缺頁中斷,以及選擇頁面調度演算法處理缺頁中斷
[Change.rar] - 用java實現操作系統的頁面置換 其中包括 最佳置換演算法(Optimal)、先進先出演算法(First-in, First-out) 、最近最久不用的頁面置換演算法(LeastRecently Used Replacement)三種演算法的實現
[M_Management.rar] - 操作系統中內存管理頁面置換演算法的模擬程序,採用的是LRU置換演算法
[detail_of_44b0x_TCPIP.rar] - TCPIP 程序包載入到44b0x 的ADS1.2工程文件的說明書。說名了載入過程的細節和如何處理演示程序和代碼。演示代碼已經上傳,大家可以搜索
[.rar] - java操作系統頁面置換演算法: (1)進先出的演算法(fifo) (2)最近最少使用的演算法(LRU) (3)最佳淘汰演算法(OPT) (4)最少訪問頁面演算法(LFU) (註:由本人改成改進型Clock演算法) (5)最近最不經常使用演算法(NUR)