中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

第一周練習(xí)——認(rèn)識復(fù)雜度和簡單排序算法-創(chuàng)新互聯(lián)

前言:
👏作者簡介:我是笑霸final,一名熱愛技術(shù)的在校學(xué)生。
📝個人主頁:個人主頁1 || 笑霸final的主頁2
📕系列專欄:《數(shù)據(jù)結(jié)構(gòu)與算法》
📧如果文章知識點有錯誤的地方,請指正!和大家一起學(xué)習(xí),一起進步👀
🔥如果感覺博主的文章還不錯的話,👍點贊👍 + 👀關(guān)注👀 + 🤏收藏🤏

創(chuàng)新互聯(lián)建站是工信部頒發(fā)資質(zhì)IDC服務(wù)器商,為用戶提供優(yōu)質(zhì)的成都天府聯(lián)通服務(wù)器托管服務(wù)

在這里插入圖片描述

請?zhí)砑訄D片描述

目錄
  • 隨堂習(xí)題-排序(冒泡排序)
  • 隨堂習(xí)題-排序(選擇排序)
  • 隨堂習(xí)題-排序(插入排序)
  • 隨堂習(xí)題-二分查找某數(shù)
  • 隨堂習(xí)題-查找某個位置
  • 隨堂習(xí)題-局部最小值問題
  • 隨堂習(xí)題-一個數(shù)出現(xiàn)奇數(shù)次
  • 隨堂習(xí)題-兩個數(shù)出現(xiàn)奇數(shù)次
  • 隨堂習(xí)題-(遞歸)數(shù)組中的大值

隨堂習(xí)題-排序(冒泡排序)

給你一個n代表有n個數(shù)字,給出這n個數(shù)字,然后你需要使用冒泡排序?qū)⑦@些數(shù)字從小到大排好。

輸入描述:

第一行輸入一個n,代表有n個數(shù)字
第二行輸入n個數(shù)

輸出描述:

輸出排序好后的n個數(shù)


示例1
輸入:

4
4 3 2 1

輸出:

1 2 3 4

代碼

#include#includeusing namespace std;
int main(){int n=0;
    cin>>n;
    if(n<=0) return 0;
    vectornums(n);
    for(int i=0;icin >>nums[i];
    }
    //冒泡
    for(int i=n-1;i>0;i--){for(int j=0;jif(nums[j]>nums[j+1]){nums[j]  =nums[j] ^ nums[j+1];
                nums[j+1]=nums[j] ^ nums[j+1];
                nums[j]  =nums[j] ^ nums[j+1];
            }
        }
    }
    //輸出
     for(int i=0;icout<< nums[i]<<" ";
    }
    return 0;
}
隨堂習(xí)題-排序(選擇排序)

給你一個n代表有n個數(shù)字,然后你需要使用選擇排序?qū)⑦@些數(shù)字從小到大排好。
輸入描述:

第一行輸入一個n,代表有n個數(shù)字
第二行輸入n個數(shù)

輸出描述:

輸出排序好后的n個數(shù)


示例1
輸入:

4
4 3 2 1

輸出:

1 2 3 4

代碼

#include#includeusing namespace std;
int main(){int n=0;
    cin>>n;
    if(n<=0) return 0;
    vectornums(n);
    for(int i=0;icin >>nums[i];
    }
    //選擇排序
    
    for(int i=0;iint vauleMinIndex=i;
        for(int j=i+1;jif(nums[vauleMinIndex]>=nums[j]){vauleMinIndex=j;
            }
        }
        swap(nums[i], nums[vauleMinIndex]);
    }
    //輸出
     for(int i=0;icout<< nums[i]<<" ";
    }
    return 0;
}
隨堂習(xí)題-排序(插入排序)

給你一個n代表有n個數(shù)字,然后你需要使用插入排序?qū)⑦@些數(shù)字從小到大排好。
輸入描述:

第一行輸入一個n,代表有n個數(shù)字
第二行輸入n個數(shù)

輸出描述:

輸出排序好后的n個數(shù)


示例1
輸入:

4
4 3 2 1

輸出:

1 2 3 4

代碼

#include#includeusing namespace std;
int main(){int n=0;
    cin>>n;
    if(n<=0) return 0;
    vectornums(n);
    for(int i=0;icin >>nums[i];
    }
    //插入排序
    for(int i=0;ifor(int j=1;jif(nums[j]swap(nums[j],nums[j-1]);
            }
        }
    }
    //輸出
     for(int i=0;icout<< nums[i]<<" ";
    }
    return 0;
}
隨堂習(xí)題-二分查找某數(shù)

給你一個n代表有一個長度為n的有序數(shù)組,然后給你一個k,你需要判斷這個k是否在數(shù)組里面,
如果存在就返回這個數(shù)從左往右第一次出現(xiàn)位置的下標(biāo),如果不存在輸出-1。
輸入描述:

第一行輸入一個n,k,其中n代表有n個數(shù)字,k代表你需要查找的元素
第二行輸入n個數(shù)

輸出描述:

如果在數(shù)組里面找到了k,輸出k所在的下標(biāo)(注:如果數(shù)組中k出現(xiàn)了多次,請輸出最小的下標(biāo)!),如果k不在,就輸出-1


示例1
輸入:

7 0
0 1 2 3 4 5 6

輸出:

0

代碼

#include#includeusing namespace std;
int main(){int n=0,k=-1,tep=-1;
    cin>>n;cin>>k;
    if(n<=0) return 0;
    vectornums(n);
    for(int i=0;i>nums[i];
    
    for(int i=0;i//插入排序
        for(int j=1;jif(nums[j]//交換兩個數(shù)
                nums[j]  = nums[j] ^ nums[j-1];
                nums[j-1]= nums[j] ^ nums[j-1];
                nums[j]  = nums[j] ^ nums[j-1];
            }
        }
    }
   //二分查找
    int l=0,r=n-1;
    while(l<= r){int mid = l + ((r -l ) >>1);
        if(nums[mid]<  k) l=mid+1;
        if(nums[mid] >k) r=mid-1;
        if(nums[mid] == k){//查重
            if(nums[mid-1]< nums[mid]){tep = mid;
            }
             r= mid-1;
        }
    }
    cout<
隨堂習(xí)題-查找某個位置

你需要輸入一個n,一個數(shù)k,然后輸入一個長度為n個大小的數(shù)組arr,然后你需要在arr上找滿足>=K的最左位置,并且輸出這個位置,如果不存在這個位置就輸出-1。
輸入描述:

第一行輸入一個n,k
第二行輸入長度為n個大小的數(shù)組arr

輸出描述:

輸出>=K的最左位置


示例1
輸入:

5 1
0 0 2 4 6

輸出:

2

代碼

#include#includeusing namespace std;
int main(){int n=0,k=-1,tep=-1;
    cin>>n;cin>>k;
    if(n<=0) return 0;
    vectornums(n);
    for(int i=0;i>nums[i];
    
    for(int i=0;i//插入排序
        for(int j=1;jif(nums[j]//交換兩個數(shù)
                nums[j]  = nums[j] ^ nums[j-1];
                nums[j-1]= nums[j] ^ nums[j-1];
                nums[j]  = nums[j] ^ nums[j-1];
            }
        }
    }
   //二分查找
    int l=0,r=n-1;
    while(l<= r){int mid = l + ((r -l ) >>1);
        if(nums[mid]<  k) l=mid+1;
        if(nums[mid] >k){r=mid-1;
            tep=mid;
        } 
        if(nums[mid] == k){tep=mid;
            //查重
            if(nums[mid-1] >nums[mid]){tep = mid;
            }
             r= mid-1;
        }
    }
    cout<
隨堂習(xí)題-局部最小值問題

定義局部最小的概念。arr長度為1時,arr[0]是局部最小。arr的長度為N(N>1)時,如果arr[0]< arr[1],那么arr[0]是局部最小;
如果arr[N-1] 是局部最小。給定無序數(shù)組arr,已知arr中任意兩個相鄰的數(shù)都不相等,只需要返回arr中任意一個局部最小出現(xiàn)的位置即可,如果不存在這個位置就輸出-1。

輸入描述:

第一行輸入一個n代表下面需要輸入n個數(shù)
第二行輸入n個元素,任意兩個相鄰的數(shù)都不相等

輸出描述:

返回arr中任意一個局部最小出現(xiàn)的位置


示例1
輸入:

6
6 2 3 1 5 6

輸出:

1

代碼

#include#includeusing namespace std;
int main(){int n=0;
    cin>>n;
     if(n<=0) { cout<< -1<< endl;
        return 0;
    }
    vectornums(n);
    for(int i=0;i>nums[i];
   
    //開頭局部最小
   if(n==1 || nums[0]< nums[1]){cout<< 0<< endl;
        return 0;
   }
    if(n==2 && nums[0]>nums[1]){cout<< 1<< endl;
        return 0;
    }
    //末尾局部最小
    if (nums[n-1]< nums[n-2]){cout<< n - 1<< endl;
        return 0;
    }
   //二分查找
    int l=0,r=n-1;
    while(l<= r){int mid = l + ((r -l ) >>1);
        if(nums[mid]< nums[mid-1] && nums[mid]cout<< mid<< endl;
            return 0;
        }
        else if( nums[mid]//說明mid+1也小于于mid  所以局部最小值應(yīng)該在右邊
            l=mid+1;
        }
        else  r=mid-1;
    }
    cout<<-1;
    return 0;
}
隨堂習(xí)題-一個數(shù)出現(xiàn)奇數(shù)次

一個數(shù)組中有一種數(shù)出現(xiàn)了奇數(shù)次,其他數(shù)都出現(xiàn)了偶數(shù)次,怎么找到這一個數(shù)?

輸入描述:

第一行輸入一個n代表,有個n個長度大小的數(shù)組
第二行輸入一個長度為n的數(shù)組

輸出描述:

輸出這個數(shù)組中出現(xiàn)奇數(shù)次的數(shù)


示例1
輸入:

5
1 1 1 2 1

輸出:

2

代碼

#includeusing namespace std;
 int main(){ int n=0;
     cin>>n;
     if(n<=0){ cout<<-1;
         return 0;
     }
     vectorarr(n);
     for(int i=0;i>arr[i];
     
     int x=0;
     for(int i=0;i x=x^arr[i];
     }
     cout<< x<
隨堂習(xí)題-兩個數(shù)出現(xiàn)奇數(shù)次

給定一個數(shù)字arr,其中只有兩個數(shù)字出現(xiàn)了奇數(shù)次,其它數(shù)字都出現(xiàn)了偶數(shù)次,按照從小到大順序輸出這兩個數(shù)。

輸入描述:

第一行輸入一個n,
第二行輸入n個數(shù)

輸出描述:

輸出出現(xiàn)奇數(shù)次的兩個數(shù),按照從小到大的順序。


示例1
輸入:

4
1 1 2 3

輸出:

2 3

代碼

#includeusing namespace std;
 int main(){ int n=0;
     cin>>n;
     if(n<=0){ cout<<-1;
         return 0;
     }
     vectorarr(n);
     for(int i=0;i>arr[i];
     //如果所有的數(shù)異或運算 最后的值一定是出現(xiàn)奇數(shù)次的兩個數(shù)的異或 并且一定不為0 
     //例如1111 和 1000 他們異或 為 0111
     int eor=0;
     
     for(int i=0;i //把和rightOne位置同為1的數(shù)異或 那么得到的數(shù)就是其中的一個答案
        if( (rightOne & arr[i]) != 0){onlyOne ^= arr[i];
        }
     }
    int y= eor^onlyOne;
        if(onlyOne  cout<< onlyOne<<" "<< y;
        }else{ cout<< y<<" "<< onlyOne;
        }
     return 0;
 }
隨堂習(xí)題-(遞歸)數(shù)組中的大值

用遞歸方法找一個數(shù)組中的大值

輸入描述:

第一行輸入一個n,代表數(shù)組的長度
第二行,輸入n個數(shù)

輸出描述:

輸出這個數(shù)組中的大值


示例1
輸入:

5
1 2 3 4 5

輸出:

5

代碼

#include#includeusing namespace std;

//遞歸
int myMax(int arr[],int l,int r){if(l==r){return arr[l];
    }
    int mid=l+((r-l)>>1);
    int leftmax=myMax(arr,l,mid);
    int rightmax=myMax(arr,mid+1,r);
    return leftmax >rightmax ? leftmax : rightmax;
}

int main(){int n;
    cin>>n ;
    if(n<=0) return 0;
     int *arr = new int[n];
    //vectorarr(n);
    for(int i = 0 ;i< n ; i++){cin>>arr[i];
    }
    cout<< myMax(arr,0,n-1);
    return 0;
}

注意
上述例題來自??途W(wǎng) https://www.nowcoder.com/

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)頁標(biāo)題:第一周練習(xí)——認(rèn)識復(fù)雜度和簡單排序算法-創(chuàng)新互聯(lián)
分享鏈接:http://www.2m8n56k.cn/article24/dpepje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗微信小程序、App開發(fā)、網(wǎng)站內(nèi)鏈關(guān)鍵詞優(yōu)化、微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

主站蜘蛛池模板: 国产在线一区在线视频 | 欧美一级片免费在线观看 | 久久久久久久一线毛片 | 欧美日韩精品高清一区二区 | 亚洲国产成人精品一区二区三区 | 亚洲视频日韩 | 91p在线| 日韩欧美一区二区精品久久 | 九九99精品 | 美女视频黄a全部免费专区一 | 成人国产在线不卡视频 | 久草中文网 | 日韩精品在线播放 | a级片免费在线播放 | 国产韩国精品一区二区三区 | 成人毛片免费观看视频在线 | 亚洲国产精品a一区二区三区 | 欧美.成人.综合在线 | 日本一级特黄特色大片免费视频 | 在线视频欧美日韩 | 97精品国产91久久久久久久 | 亚洲七七久久精品中文国产 | 国产亚洲欧美日韩在线看片 | 国产精品不卡无毒在线观看 | 国产男女爽爽爽爽爽视频 | 亚洲人成网国产最新在线 | 真实国产精品视频国产网 | 三级毛片在线 | 国产成人3p视频免费观看 | 青娱乐色 | 夜色www | 99久久精品免费看国产免费 | 日韩精品视频美在线精品视频 | 91精品国产91热久久p | 日本美女一区二区三区 | 看全色黄大色黄大片女图片 | 欧美日韩精品高清一区二区 | 久久精品久久精品国产大片 | 黄网站免费在线 | 中文字幕日韩一区二区不卡 | 久草在线色站 |