国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

java - 求下面這道算法的解釋

瀏覽:71日期:2023-10-17 14:36:05

問題描述

已知長度為n的線性表A采用順序存儲結構,請寫一時間復雜度為O(n)、空間復雜度為O(1)的算法,該算法刪除線性表中所有值為item的數據元素。

void Delete(ElemType A[ ],int n)∥A是有n個元素的一維數組,本算法刪除A中所有值為item的元素。{i=1;j=n;∥設置數組低、高端指針(下標)。 while(i<j) {while(i<j && A[i]!=item)i++; ∥若值不為item,左移指針。 if(i<j)while(i<j && A[j]==item)j--;∥若右端元素為item,指針左移 if(i<j)A[i++]=A[j--];}

改寫之后運行不出來,下面是改寫后的

package 線性表;public class Work_10 { public Work_10(){int[] arr={2,34,4,4,5};int item=4;delete(arr,item,arr.length-1);for(int a:arr){ System.out.print(a+' ');} } public static void delete(int[] array,int item,int n){int i=0,j=n;while(i<j){ while(i<j&&array[i]!=item) i++; if(i<j) while(i<j&&array[j]==item) j--; if(i<j){array[i++]=array[j--]; }} } public static void main(String[] args) {new Work_10(); }}

java - 求下面這道算法的解釋

不知道該怎么改?求大佬解釋

問題解答

回答1:

要想刪除,先搜索,后刪除,給你個搜索的,剩下的自己思考下寫個變種就可以了。

public static int search(byte[] a,int n, byte item) {int low = 0;int high = n - 1;while (low <= high) { int mid = (low + high) >>> 1; byte midVal = a[mid]; if (midVal < item)low = mid + 1; else if (midVal > item)high = mid - 1; elsereturn mid; // 找到item}return -(low + 1); // 沒找到item }回答2:

哦,多出來是因為你輸出的個數錯了,刪除的過程沒問題。

刪除前,你的數組內容是 2,34,4,4,5,共 5 個元素。

要刪除的內容為 4,也就是說刪除后只剩 3 個元素,分別是 2,34,5

所以你的結果輸出只需要輸出數組的前 3 個,后面那兩個是作廢了的元素。

標簽: java
相關文章:
主站蜘蛛池模板: 直接看的毛片 | 成人综合婷婷国产精品久久免费 | www成人国产在线观看网站 | 国产看片一区二区三区 | 日韩亚洲一区中文字幕 | 欧美成人伊人十综合色 | 国产乱码精品一区二区三区中 | 日韩精品久久久免费观看夜色 | 亚洲成aⅴ人片在线观 | 国产精品jvid在线观看 | 亚洲女人被黑人猛躁进女人 | 国产大乳喷奶水在线看 | 欧美日韩中文字幕在线观看 | 国产精品夫妇久久 | 欧美高清视频一区 | 久久久久久久亚洲精品一区 | 国产欧美视频综合二区 | 日本韩国一级毛片中文字幕 | 亚洲香蕉影院 | 最新亚洲一区二区三区四区 | 欧美成人欧美激情欧美风情 | 国产精品欧美一区二区在线看 | 国产一区二区三区四区五区 | 亚洲男人网 | 日本精品高清一区二区不卡 | 一级特黄aa大片欧美 | 中文字幕亚洲天堂 | 日韩精品在线看 | 国产91一区二区在线播放不卡 | 国产国语在线播放视频 | 91精品一区二区三区在线 | 久久精品大片 | 深夜一级毛片 | 日本三级成人午夜视频网 | 国内自产拍自a免费毛片 | 国产高清在线精品免费 | 国产精品美女免费视频大全 | 91久久线看在观草草青青 | 成人在线网址 | 福利三区 | 国产一级毛片一区二区三区 |