程序設計實踐--排序(1)

1、插入排序(一個數組)

#include<bits/stdc++.h>
using namespace std;
const int N=1e3+5;
int a[N];
int n;
int main(){cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<=n;i++){int v=a[i];int j=i-1;while(j>=1&&a[j]>v){a[j+1]=a[j];j--;}a[j+1]=v;printf("第%d輪插入排序的結果為",i);for(int k=1;k<=n;k++){printf(" %d",a[k]);}printf("\n");}return 0;
}

2、插入排序(兩個數組)

#include<bits/stdc++.h>
using namespace std;
int n;
int a[15];//原數組
int b[15];//新數組
int main(){cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}int len=0;//新數組的當前長度for(int i=1;i<=n;i++){int v=a[i];int j=len-1;while(j>=0&&b[j]>v){b[j+1]=b[j];j--;}b[j+1]=v;len++;printf("第%d輪插入排序的結果為",i);for(int k=0;k<len;k++){printf(" %d",b[k]);}cout<<endl;}return 0;
}

3、堆排序

#include<bits/stdc++.h>
using namespace std;
const int N=1e3+5;
int a[N];
int n;
void display2(int s){for(int i=0;i<n;i++){if(i==n-1){cout<<a[i]<<endl;}else{cout<<a[i]<<" ";}}
}
void display3(int u,int v){int lar=u;int left=2*u+1;int right=2*u+2;if(left<v&&a[left]>a[lar]){lar=left;}if(right<v&&a[right]>a[lar]){lar=right;}if(lar!=u){swap(a[u],a[lar]);display3(lar,v);}
}
void display1(){for(int i=n/2-1;i>=0;i--){display3(i,n);}
}
int main(){cin>>n;for(int i=0;i<n;i++){cin>>a[i];}//構建初始堆display1();display2(n);for(int i=n-1;i>0;i--){swap(a[0],a[i]);display3(0,i);display2(n);}return 0;
}

4、排序(快速排序算法)

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int a[N];
int n,m;
void QuickSort(int s,int t){int i=s,j=t;int tmp=a[(i+j)/2];while(i<=j){while(a[j]>tmp)j--;while(a[i]<tmp)i++;if(i<=j){swap(a[i],a[j]);i++,j--;}}if(s<j)QuickSort(s,j);if(i<t)QuickSort(i,t);
}
int main(){cin>>m;while(m--){cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}QuickSort(1,n);for(int i=1;i<=n;i++){cout<<a[i]<<" ";}cout<<endl;}return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int a[N];
int n, m;// 隨機選擇基準值并分區
int Position(int s, int t) {// 隨機選擇一個位置與s交換srand(time(NULL));int pos = s + rand() % (t - s + 1);swap(a[s], a[pos]);int i = s, j = t;int tmp = a[s];while (i < j) {while (j > i && a[j] > tmp) j--;a[i] = a[j];while (i < j && a[i] < tmp) i++;a[j] = a[i];}a[i] = tmp;return i;
}// 快速排序主函數
void QuickSort(int s, int t) {if (s < t) {int i = Position(s, t);QuickSort(s, i-1);QuickSort(i+1, t);}
}int main() {cin >> n;for (int i = 1; i <= n; i++) {cin >> m;for (int j = 1; j <= m; j++) {cin >> a[j];}QuickSort(1, m);for (int j = 1; j <= m; j++) {cout << a[j] << " ";}cout << endl;}return 0;
}

5、冪(東莞2014初賽第3題)

#include<bits/stdc++.h>
using namespace std;
int a[50];
int k;
int n;
int main(){cin>>n;while(n){a[k]=n%2;n=n/2;k++;}k=k-1;for(int i=k;i>=0;i--){if(a[i]){cout<<2<<" "<<i<<"\n";}}return 0;
}

6、朗讀比賽(東莞2010第2題)

#include<bits/stdc++.h>
using namespace std;
int n,s,t,r;
int main() {cin>>n;//s是速度,t是朗讀時間,r是休息時間cin>>s>>t>>r;int a=s*t;int b=t+r;int c=n/a;int d=n%a;int e=c*b;if(d>0){int f=(d+s-1)/s;e+=f;}else{e-=r;}cout<<e<<endl;return 0;
}

7、歸并排序

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int a[N];
int b[N];  // 臨時數組,用于合并
int n;// 合并兩個有序子數組
void Merge(int le, int ri, int mid) {int i = le, j = mid + 1;int k = le;// 比較兩個子數組的元素,按順序放入臨時數組bwhile (i <= mid && j <= ri) {if (a[i] < a[j]) {b[k++] = a[i++];} else {b[k++] = a[j++];}}// 處理剩余元素while (i <= mid) b[k++] = a[i++];while (j <= ri) b[k++] = a[j++];// 將臨時數組b中的有序元素復制回原數組afor (int i = le; i <= ri; i++) {a[i] = b[i];}
}// 歸并排序主函數
void MergeSort(int le, int ri) {if (le < ri) {int mid = (le + ri) / 2;MergeSort(le, mid);      // 遞歸排序左半部分MergeSort(mid + 1, ri);  // 遞歸排序右半部分Merge(le, ri, mid);      // 合并兩個有序部分}
}int main() {cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i];}MergeSort(1, n);for (int i = 1; i <= n; i++) {cout << a[i] << " ";}cout << endl;return 0;
}

8、統計工齡

#include<bits/stdc++.h>
using namespace std;
const int N=55;
int a[N];
int n,m;
int main() {cin>>n;for(int i=1;i<=n;i++){cin>>m;a[m]++;}for(int i=0;i<=50;i++){if(a[i]){cout<<i<<":"<<a[i]<<endl;}}return 0;
}

9、月餅

#include<bits/stdc++.h>
using namespace std;
const int N=1e3+5;
struct node{double u;double v;
}a[N];
int n,m;
bool cmp(node b1,node b2){return b1.v*b2.u>b2.v*b1.u;	
}
int main() {cin>>n>>m;double sum=0;for(int i=0;i<n;i++){cin>>a[i].u;}for(int i=0;i<n;i++){cin>>a[i].v;}sort(a,a+n,cmp);for(int i=0;i<n;i++){if(a[i].u<m){m-=a[i].u;sum+=a[i].v;}else{sum+=m*a[i].v/a[i].u;m=0;break;}}cout<<fixed<<setprecision(2)<<sum<<endl;return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/81665.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/81665.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/81665.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MAC電腦中右鍵后復制和拷貝的區別

在Mac電腦中&#xff0c;右鍵菜單中的“復制”和“拷貝”操作在功能上有所不同&#xff1a; 復制 功能&#xff1a;在選定的位置創建一個與原始文件相同的副本。快捷鍵&#xff1a;CommandD用于在當前位置快速復制文件&#xff0c;CommandC用于將內容復制到剪貼板。效果&…

新能源汽車焊接智能節氣閥

在新能源汽車產業迅猛發展的浪潮中&#xff0c;制造工藝的優劣直接關系到車輛的性能、安全與市場競爭力。焊接&#xff0c;作為新能源汽車生產流程里的關鍵一環&#xff0c;無論是構建車身框架&#xff0c;還是連接電池模組&#xff0c;其質量的好壞都起著決定性作用。而在焊接…

Linux:面試題

1. 什么是中斷和異常&#xff1f; 中斷&#xff1a;由外部設備&#xff08;如鍵盤、網卡&#xff09;觸發的異步事件&#xff0c;用于通知 CPU 有緊急事件需要處理。 異常&#xff1a;由 CPU 內部執行指令時產生的同步事件&#xff08;如除零錯誤、缺頁異常&#xff09;&#…

linux關閉某端口暫用的進程

查看是哪個端口暫用 sudo netstat -tulpn | grep :80根據圖片 顯示 80端口暫用的 進程id是 3002 結束進程id為3002的進程 sudo kill -9 3002

【學習心得】Jupyter 如何在conda的base環境中其他虛擬環境內核

如果你在conda的base環境運行了jupyter lab打開了一個ipynb文本&#xff0c;此時選擇的內核是base虛擬環境的Python內核&#xff0c;如果我想切換成其他conda虛擬環境來運行這個文件該怎么辦&#xff1f;下面我們試著還原一下問題&#xff0c;并且解決問題。 【注】 這個問題出…

React Flow 邊的基礎知識與示例:從基本屬性到代碼實例詳解

本文為《React Agent&#xff1a;從零開始構建 AI 智能體》專欄系列文章。 專欄地址&#xff1a;https://blog.csdn.net/suiyingy/category_12933485.html。項目地址&#xff1a;https://gitee.com/fgai/react-agent&#xff08;含完整代碼示?例與實戰源&#xff09;。完整介紹…

ZooKeeper 原理解析及優劣比較

大家好&#xff0c;這里是架構資源棧&#xff01;點擊上方關注&#xff0c;添加“星標”&#xff0c;一起學習大廠前沿架構&#xff01; 引言 在分布式系統中&#xff0c;服務注冊、配置管理、分布式鎖、選舉等場景都需要一個高可用、一致性強的協調服務。Apache ZooKeeper 憑…

模糊照片變清晰:照片高清修復 ComfyUI 使用教學

模糊照片變清晰 滿心歡喜地翻出舊相冊&#xff0c;想重溫那些美好的回憶&#xff0c;結果照片卻模糊不清&#xff0c;根本看不清當年的模樣&#xff1b;又或者精心拍攝了一張超有氛圍感的照片&#xff0c;結果因為手抖或者光線問題&#xff0c;變得模糊&#xff0c;無法發朋友圈…

IEEEtran中文獻中的作者大于3個時,用et al.省略

latex&#xff1a; 在使用bib文件的時候&#xff0c;當參考文獻超過三個作者時&#xff0c;第三個作者后加逗號并接上et al.。我使用的是IEEEtran.bst。 \begingroup \small \bibliographystyle{IEEEtran} \bibliography{newbmyref1} \endgroup1.需要將IEEEtran.bst添加到這個…

Android Studio Kotlin 中的方法添加灰色參數提示

在使用 Android Studio 時&#xff0c; 我發現使用 Java 編寫方法后在調用方法時&#xff0c; 會自動顯示灰色的參數。 但在 Kotlin 中沒有顯示&#xff0c; 于是找了各種方法最后找到了設置&#xff0c; 并且以本文章記錄下來。 博主博客 https://blog.uso6.comhttps://blog.…

python寵物用品商城系統

目錄 技術棧介紹具體實現截圖系統設計研究方法&#xff1a;設計步驟設計流程核心代碼部分展示研究方法詳細視頻演示試驗方案論文大綱源碼獲取/詳細視頻演示 技術棧介紹 Django-SpringBoot-php-Node.js-flask 本課題的研究方法和研究步驟基本合理&#xff0c;難度適中&#xf…

《具身智能機器人:自修復材料與智能結構設計的前沿探索》

在具身智能機器人的研發進程中&#xff0c;自修復材料與智能結構設計無疑是極具挑戰性與創新性的關鍵領域&#xff0c;吸引著無數科研人員投身其中&#xff0c;探尋未知。 傳統機器人在復雜多變的環境中執行任務時&#xff0c;一旦材料出現損傷&#xff0c;如外殼刮擦、內部線…

矩陣的秩(Rank)

矩陣的秩&#xff08;Rank&#xff09;是線性代數中的核心概念&#xff0c;表示矩陣中線性無關的行&#xff08;或列&#xff09;的最大數量&#xff0c;反映了矩陣所包含的“獨立信息”的多少。以下是其核心要點&#xff1a; 1. 秩的定義 行秩&#xff1a;矩陣中線性無關的行…

麒麟系統編譯osg —— 擴展篇

一、背景 前文講到麒麟系統編譯osg&#xff0c;通常情況下會提示&#xff1a; 意思是無法生成插件osgdb_jpeg&#xff0c;需要配置“JPEG_LIBRARY”和“JPEG_INCLUDE_DIR”。 經查&#xff0c;本機不存在jpeglib.h和libjpeg.so&#xff0c;需要另外安裝。 二、編譯jpeg庫 …

【數據倉庫面試題合集①】數據建模高頻面試題及解析

?? 面試官愛問什么?——核心考察點 數據建模作為數倉崗位面試的重頭戲,考察的不只是模型知識,更是對業務理解、抽象能力和工程落地經驗的綜合評估。常見題型可分為三類: 概念類:模型類型、建模方法論(如維度建模、范式建模) 場景類:給定一個業務場景進行模型設計(如…

園區無人機智能巡檢項目方案

在工業4.0與智慧園區建設加速推進的今天&#xff0c;傳統人工巡檢的局限性日益凸顯&#xff1a;效率低、覆蓋范圍有限、安全隱患大。而無人機智能巡檢技術的崛起&#xff0c;正以其 "高空視角AI大腦全自動作業" 的創新模式&#xff0c;重新定義園區管理標準。本文將深…

【C++】vector:容器的別樣風采

目錄 vector&#xff1a; vector實例化&#xff1a; vector構造函數&#xff1a; vector對象尾插&#xff1a;v1.push_back() vector迭代器&#xff1a; vector實例化string類型的對象 vector接口: begin()end()//rbegin()rend() resize()&#xff1a; vector&#xff…

大語言模型 15 - Manus 超強智能體 開源版本 OpenManus 案例與原理深入解析

寫在前面 Manus 是由中國初創公司 Monica.im 于 2025 年 3 月推出的全球首款通用型 AI 智能體&#xff08;AI Agent&#xff09;&#xff0c;旨在實現“知行合一”&#xff0c;即不僅具備強大的語言理解和推理能力&#xff0c;還能自主執行復雜任務&#xff0c;直接交付完整成…

【node.js】安裝與配置

個人主頁&#xff1a;Guiat 歸屬專欄&#xff1a;node.js 文章目錄 1. Node.js簡介1.1 Node.js的特點1.2 Node.js架構 2. Node.js安裝2.1 下載和安裝方法2.1.1 Windows安裝2.1.2 macOS安裝2.1.3 Linux安裝 2.2 使用NVM安裝和管理Node.js版本2.2.1 安裝NVM2.2.2 使用NVM管理Node…

Neo4j(一) - Neo4j安裝教程(Windows)

文章目錄 前言一、JDK與Neo4j版本對應關系二、JDK11安裝及配置1. JDK11下載2. 解壓3. 配置環境變量3.1 打開系統屬性設置3.2 新建系統環境變量3.3 編輯 PATH 環境變量3.4 驗證環境變量是否配置成功 三、Neo4j安裝&#xff08;Windows&#xff09;1. 下載并解壓Neo4j安裝包1.1 下…