【王道數據結構】【chapter8排序】【P360t2】

試編寫一個算法,使之能夠在數組L[1……n]中找出第k小的元素(即從小到大排序后處于第k個位置的元素)(可以直接采用排序,但下面的排序的代碼只是為了方便核對是不是第k小的元素,k從0開始計算)

#include <iostream>
#include <time.h>
#include <stdlib.h>int * testArray(int size)
{int a[100]={0};int *tmp=(int*) malloc(sizeof(int )*size);for(int i=0;i<size;i++){int t=rand()%100;if(a[t]!=1) tmp[i]=t,a[t]=1;else i--;}return tmp;
}void print(int *tmp,int size)
{printf("the array is:");for(int i=0;i<size;i++) printf("%3d",tmp[i]);puts("");
}int _sort(int* array,int left,int right)
{int tmp=array[left];while(left<right){while(left<right&&array[right]>=tmp) --right;array[left]=array[right];while(left<right&&array[left]<=tmp) ++left;array[right]=array[left];}array[left]=tmp;return left;
}
void sort(int * array,int left,int right)
{if(left<right) {int split = _sort(array, left, right);sort(array, left, split - 1);sort(array, split + 1, right);}
}//第k小,就是確定第k個位置上的元素
int kth_elem(int * array,int left,int right,int k)
{int tmp=array[left];int l=left,r=right;while(l<r){while(l<r&&array[r]>tmp) r--;array[l]=array[r];while(l<r&&array[l]<tmp) l++;array[r]=array[l];}array[l]=tmp;if(l==k) return array[l];else if(l>k) return kth_elem(array,left,l-1,k);//在左半邊繼續找第k小的元素else return kth_elem(array,l+1,right,k);
}
int main() {srand(time(nullptr));int *r1= testArray(10);int *r2=(int *) malloc(sizeof (int)*10);for(int i=0;i<10;i++)r2[i]=r1[i];print(r1,10);sort(r2,0,9);print(r2,10);printf("%3d\n", kth_elem(r1,0,9,4));return 0;
}

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

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

相關文章

出海手游收入一路高歌,營銷上如何成功?

出海手游收入一路高歌&#xff0c;營銷上如何成功&#xff1f; 以RPG和SLG為代表的中重度游戲一直是國內廠商在海外市場的傳統優勢品類&#xff0c;因為它們具有較高的投資回報率&#xff0c;是國內廠商在國際市場上取得成功的“吸金”利器。 據伽馬數據發布的《2023全球移動游…

SpringCloud搭建微服務之Consul服務配置

1. 概述 前面有介紹過Consul既可以用于服務注冊和發現&#xff0c;也可以用于服務配置&#xff0c;本文主要介紹如何使用Consul實現微服務的配置中心&#xff0c;有需要了解如何安裝Consul的小伙伴&#xff0c;請查閱SpringCloud搭建微服務之Consul服務注冊與發現 &#xff0c…

steam怎么付款

信用卡支付 登錄Steam賬戶&#xff0c;選擇需要購買的游戲或其他物品&#xff0c;點擊“加入購物車”。在購物車頁面點擊“去結賬”按鈕&#xff0c;進入付款頁面。在付款頁面選擇信用卡付款方式&#xff0c;填寫信用卡信息&#xff0c;輸入驗證碼&#xff0c;點擊確認付款。 …

Servlet 新手村引入-編寫一個簡單的servlet項目

Servlet 新手村引入-編寫一個簡單的servlet項目 文章目錄 Servlet 新手村引入-編寫一個簡單的servlet項目一、編寫一個 Hello world 項目1.創建項目2.引入依賴3.手動創建一些必要的目錄/文件4.編寫代碼5.打包程序6.部署7.驗證程序 二、更方便的處理方案&#xff08;插件引入&am…

autocrlf和safecrlf

git遠程拉取及提交代碼&#xff0c;windows和linux平臺換行符轉換問題&#xff0c;用以下兩行命令進行配置&#xff1a; git config --global core.autocrlf false git config --global core.safecrlf true CRLF是windows平臺下的換行符&#xff0c;LF是linux平臺下的換行符。…

98 greenplum 集群搭建過程中碰到的幾個問題

前言 最近有搭建 greenplum 集群的需求 然后 在搭建的過程中碰到了一些問題, 還是有一些時間開銷 并且問題也稍微有些復雜, 因此記錄一下 1. Do not have enough valid segments to start the array. 報錯日志信息如下 20220408:14:15:29:021638 gpstart:gp1:gpadmin-[I…

基于springboot+vue的公交線路查詢系統

博主主頁&#xff1a;貓頭鷹源碼 博主簡介&#xff1a;Java領域優質創作者、CSDN博客專家、阿里云專家博主、公司架構師、全網粉絲5萬、專注Java技術領域和畢業設計項目實戰&#xff0c;歡迎高校老師\講師\同行交流合作 ?主要內容&#xff1a;畢業設計(Javaweb項目|小程序|Pyt…

Find My運動相機|蘋果Find My技術與相機結合,智能防丟,全球定位

運動相機設計用于在各種運動和極限環境中使用&#xff0c;如徒步、登山、攀巖、騎行、滑翔、滑雪、游泳和潛水等&#xff0c;它們通常具有防抖防震、深度防水和高清畫質的特點&#xff0c;能夠適應顛簸劇烈的環境&#xff0c;甚至可以承受一定程度的摔落&#xff0c;一些運動相…

基于systick實現獲取系統運行時間

基于systick實現獲取系統運行時間 文章目錄 基于systick實現獲取系統運行時間systick.c代碼結構:代碼功能:總結 systick.c #include <stdint.h> #include "gd32f30x.h"static volatile uint64_t g_sysRunTime 0;/** ***************************************…

數學建模【聚類模型】

一、聚類模型簡介 “物以類聚&#xff0c; 人以群分”&#xff0c;所謂的聚類&#xff0c;就是將樣本劃分為由類似的對象組成的多個類的過程。聚類后&#xff0c;我們可以更加準確的在每個類中單獨使用統計模型進行估計、分析或預測&#xff0c;也可以探究不同類之間的相關性和…

springboot233大學生就業需求分析系統

大學生就業需求分析系統設計與實現 摘 要 信息數據從傳統到當代&#xff0c;是一直在變革當中&#xff0c;突如其來的互聯網讓傳統的信息管理看到了革命性的曙光&#xff0c;因為傳統信息管理從時效性&#xff0c;還是安全性&#xff0c;還是可操作性等各個方面來講&#xff…

C語言-簡單的環形隊列的源碼示例

概述 環形隊列&#xff08;Circular Queue&#xff09;是一種常見的數據結構&#xff0c;特別適用于在單片機等資源受限的環境下實現緩沖區或隊列功能。下面是一個簡單的環形隊列的源碼示例&#xff0c;用C語言實現&#xff1a; #include <stdio.h> #include <stdint…

五種查看Spring容器中bean的方法

五種查看Spring容器中bean的方法 在Spring應用程序中&#xff0c;了解和查看容器中的Bean是進行調試和問題排查的關鍵。Spring提供了多種方法來查看容器中注冊的Bean&#xff0c;以便我們深入了解應用程序的內部結構和調試潛在問題。本文將介紹五種常用的查看Spring容器中Bean的…

C++ map用法詳細總結40例

文章目錄 1. 定義與初始化2. 插入元素3. 查找元素4. 刪除元素5. 遍歷6. 訪問成員函數7. 修改元素8. 注意事項9. 使用 equal_range 查找鍵值范圍10. 使用 emplace 添加元素11. 使用 cbegin 和 cend 獲取常量迭代器12. 排序規則自定義13. 使用 multimap 存儲重復鍵14. 判斷 map 是…

Python音樂信息管理庫之beets使用詳解

概要 在數字化時代,音樂管理變得越來越重要,特別是對于音樂愛好者和專業音樂人士而言。Python作為一種功能強大的編程語言,擁有著豐富的音樂處理庫,其中Beet就是一款備受推崇的音樂信息管理工具。本文將深入探討Beet庫的功能特性、使用方法以及應用場景,并提供豐富的示例…

市場需求預測模型

市場需求預測模型是一種用于預測某個市場或產品的需求量的數學模型。它基于歷史數據、市場趨勢以及其他相關因素&#xff0c;通過統計和分析的方法來預測未來的市場需求情況。 市場需求預測模型可以幫助企業制定合理的生產計劃、庫存管理和市場營銷策略。通過準確地預測市場需…

python實現數字規整(轉中文)

1.思路根據正則匹配數字類型比如手機號、年月日等進行相對的數字規整 話不多說直接上代碼&#xff0c;有新的類型可以按照當前方案進行新增 import redef match_year_digit(match):m str(match.group())relation {1: 一, 2: 二, 3: 三, 4: 四, 5: 五, 6: 六, 7: 七, 8: 八, …

WPF真入門教程31--WPF版房屋租售系統

1、教程回顧 到現在為止&#xff0c;“蒸”入門系列教程已完成了30刺由淺入深地講解&#xff0c;當然不可能講到了WPF的所有技能點&#xff0c;但讀者看到了wpf的內部各種功能及之間的聯系&#xff0c;在此基礎上&#xff0c;再提供一個完整有效的綜合項目&#xff0c;本項目采…

tcp的三次握手和四次揮手?

一&#xff1a;引出 客戶端與服務器之間數據的發送和返回的過程當中需要創建一個叫TCP connection的東西&#xff1b;由于TCP不存在連接的概念&#xff0c;只存在請求和響應&#xff0c;請求和響應都是數據包&#xff0c;它們之間都是經過由TCP創建的一個從客戶端發起&#xff…

身份驗證錯誤。要求的函數不受支持。遠程計算機:[IP地址]。這可能是由于CredSSP加密數據庫修正

出現“身份驗證錯誤。要求的函數不受支持。遠程計算機&#xff1a;[IP地址]。這可能是由于CredSSP加密數據庫修正”的問題&#xff0c;通常是因為Windows更新后&#xff0c;遠程桌面連接&#xff08;RDP&#xff09;的安全性增強&#xff0c;特別是與CredSSP&#xff08;Creden…