0914 TIL


0914 TIL


アルゴリズムの問題を解く
  • プログラマーが「救命ボート」
  • を解決
  • の特徴
    1.ダブルポインタの使用
    -開始インデックスと終了インデックスをキャプチャして操作し、必要なコンテンツのシェイプを取得します.
    2.完全ソート
    3.s=0、e=配列の最後の長さ-1
    4.while(s<=e)へ
    5.整列した状態なので、先頭と末尾の和を求める
    IF)と限界未満の場合は、s+=1、e-=1に変更し、両方を通過させます.
    ELSE)e-=1で、最後のパスのみが許可されます.
    最後に、答え+=1
  • は、次の変更されたインデックスを参照します.
  • コード
  • import java.util.*;
    class Solution {
        public int solution(int[] people, int limit) {
            ArrayList<Integer> arrayList=new ArrayList<>();
            for (int i:people) {
                arrayList.add(i);
            }
            // 정렬
            Collections.sort(arrayList);
    
            int start=0;
            int last=arrayList.size()-1;
    
            int answer = 0;
            while (start<=last) {
                int maxVal=arrayList.get(last);
                int minVal=arrayList.get(start);
                int hap=minVal+maxVal;
                    
                if (hap<=limit) {
                    // 둘다 통과 
                    start+=1;
                    last -=1;
                }
                else {
                    // 마지막 것만 통과 
                    last-=1;
                }
                answer+=1;
            }
            return answer;
        }
    }
  • の利点
    -配列を削除する必要がなく、時間を節約
    -一度だけリストを閲覧するので、リースがソートされている場合、O(n)を取得することができ、ソートされていなくても、O(nlong n)の時間的複雑さを取得することができる.
  • 参考ブログ
    https://velog.io/@adorno10/%ED%88%AC-%ED%8F%AC%EC%9D%B8%ED%84%B0-Two-Pointer
  • CS研究

  • CPUスケジューリング:
  • どのプロセスがCPUを占有するかを決定する
  • プリエンプト型と非線形性
    -プリエンプト:他のプロセスで実行中のCPUが削除されているため
    -非線形:
  • 、プロセスの完了を待つ
  • CPUスケジューリングアルゴリズム
    -
  • を処理し、すべてのプロセスの平均時間を計算する(AWT)

  • FCFS:先着先処理/典型的な非線形スケジューリング

  • 表示ジョブ第1時間(SJF):実行時間最短から処理開始
  • 非線形プリエンプトの実行:すべてのプロセスのBurst時間(追加のオーバーヘッド)を事前に計算し、短いから短いまで
  • を順次実行する.
  • プリエンプト進度:到着時間を余分に計算し、P 1進行中P 2のAr競合時間、P 2のBust時間がより短い場合P 2が進度となる
    -利点:AWTのみがプリエンプトよりも高速である可能性がある
    -欠点:Context交換オーバーヘッド

  • ≪優先度スケジュール|Priority Schedule|oem_src≫:優先度の高い順序(通常、数値が低いほど優先度が高くなります)
  • 飢餓状態(Starvation)が発生する可能性があります.これは、優先度の低いプロセスがReddyQ(新しいプロセスの優先度が高いため、待ち続ける)
  • を待ち続けることを意味します.
  • 防止技術:Aging技術により長時間待ちプロセスの優先度を高める
  • .

  • Round Robin:任意の時間(またはタイムスライス)でCPU占有量を一定期間次のプロセスに移行します.
  • 時間量が長くなり、FCFS
  • に等しい
  • の時間量が短いと、コンテキストの切り替えが非常に頻繁になるため、オーバーヘッドも
  • 増加する.
    コメントブログ
  • https://wisdom-and-record.tistory.com/86?category=932460