免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
算法是一切程序設(shè)計(jì)的靈魂和基礎(chǔ)

“程序=數(shù)據(jù)結(jié)構(gòu)+算法” 這個公式很多開發(fā)者都知道。

算法是對特定問題的求解步驟的一種精確描述方法,目前被廣泛認(rèn)可的算法專業(yè)定義是:算法是模型分析的一組可行的、確定的和 有窮的規(guī)則。

通俗的說,算法可以理解為一個完整的解題步驟,由一些基本運(yùn)算和規(guī)定的運(yùn)算 順序構(gòu)成。

在有限的時(shí)間內(nèi)通過解題步驟解決特定的問題來獲得有效的輸出結(jié)果。

是不是看著懵懵的?別急,技術(shù)需要慢慢消化

舉個例子吧,就用最經(jīng)典的例子就是統(tǒng)籌安排!

假如你有3件事(A B C)要做

A 需要5分鐘

B 需要5分鐘但是需要等會15分鐘 (如燒水過程)

C 需要10分鐘

你會怎么安排呢,歡迎留言,今天就到此為止(開玩笑啦)

我們來看兩張圖你就明白了

方法一

方法二

上述例子中我們看出來,算法分兩種:算法效率低和算法效率高。算法也是有好壞區(qū)分的。好的算法是提工作的效率,算法的基本任務(wù)是針對一個具體的問題找到一個高效率的處理方法才是我們想要的。

算法的特點(diǎn):有窮性、確切性、輸入、輸出和可行性

有窮性:算法指令或步驟執(zhí)行次數(shù)有限,執(zhí)行時(shí)間也許有限

確切性:算法的每一個指令或步驟必須有明確的定義或描述

輸入:一個算法應(yīng)該有相應(yīng)的輸入條件

輸出:一個算法應(yīng)該有相應(yīng)的輸出結(jié)果

可行性:算法的執(zhí)行步驟必須是可行的,且可以在有限的時(shí)間內(nèi)完成。

流程圖

流程圖是一種圖形表示算法的流程方法。

一般采用如下三種結(jié)構(gòu)。

順序結(jié)構(gòu):順序結(jié)構(gòu)是最簡單的流程結(jié)構(gòu),一個接著一個進(jìn)行處理。

分支結(jié)構(gòu):分支結(jié)構(gòu)常用于根據(jù)某個條件來決定算法的走向。如:先判斷p,p成立執(zhí)行B

不成立執(zhí)行A。分支結(jié)構(gòu)又是也成為條件結(jié)構(gòu)

循環(huán)結(jié)構(gòu):循環(huán)結(jié)構(gòu)常用于反復(fù)執(zhí)行,可分為當(dāng)型循環(huán)結(jié)構(gòu)和直到型循環(huán)結(jié)構(gòu)。

當(dāng)值循環(huán)結(jié)構(gòu)先對條件進(jìn)行判斷,在執(zhí)行,一般用while語句實(shí)現(xiàn)

直到型循環(huán)結(jié)構(gòu)先執(zhí)行,然后在對條件進(jìn)行判斷,一般用until、do...while語句執(zhí)行。

Ps:構(gòu)成死循環(huán)的結(jié)構(gòu)沒有如何意義。

算法性能評價(jià)。

時(shí)間復(fù)雜度:是同一問題可用不同算法解決,而一個算法的質(zhì)量優(yōu)劣將影響到算法乃至程序的效率。算法分析的目的在于選擇合適算法和改進(jìn)算法。

空間復(fù)雜度:時(shí)間復(fù)雜度是同一問題可用不同算法解決,而一個算法的質(zhì)量優(yōu)劣將影響到算法乃至程序的效率。算法分析的目的在于選擇合適算法和改進(jìn)算法。

下面代碼演示

在一個數(shù)組中查找數(shù)據(jù)是很常用的操作。

首先輸入待查找的數(shù)據(jù),并生成一個隨機(jī)的數(shù)據(jù)數(shù)組,然后從頭到尾對數(shù)據(jù)進(jìn)行逐個比較,當(dāng)數(shù)據(jù)相等時(shí)找到數(shù)據(jù),并輸出結(jié)果。

輸入一個沒有的值

輸入一個有的值。

代碼區(qū)域,便于復(fù)制

import java.util.Random;

import java.util.Scanner;

public class text {

static int n =20;

public static void main(String[] args) {

int [] arr=new int[n];

//x用戶保存鍵盤錄入的值

int x,N,i;

//f 保存找到的數(shù)據(jù)

int f=-1;

Random ran = new Random();

for(i=0;i<n;i++){

arr[i] =ran.nextInt(100); //產(chǎn)生數(shù)組 隨機(jī)生成種子

}

System.err.println('隨機(jī)生成的數(shù)據(jù)序列:\n');

for(i=0;i<n;i++){

System.out.println(arr[i]+' ');

}

System.out.println('\n\n');

System.out.println('輸入你要查找的整數(shù):');

//鍵盤錄入

Scanner input = new Scanner(System.in);

x=input.nextInt();//輸入查找的數(shù)

for(i=0;i<n;i++){ //順序查找

if(x==arr[i]){

f=i; //=找到數(shù)據(jù) 并賦值

break;

}

}

if(f<0){

System.out.println('沒有找到數(shù)據(jù):'+x);

}else{

System.out.println('數(shù)據(jù):'+x+'位于數(shù)組的第'+(f+1)+'個元素處。\n');

}

}

}

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
排序算法(三)之堆排序
數(shù)據(jù)結(jié)構(gòu)與算法——排序算法(5)——快速排序
Java中的經(jīng)典算法之冒泡排序(Bubble Sort)
排序算法詳解(java代碼實(shí)現(xiàn))
算法之旅 | 選擇排序法
編程語言常見八大排序詳解
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服