c語言選擇排序總結(詳解)

選擇排序cpp文件項目結構截圖
在這里插入圖片描述
項目cpp文件截圖
在這里插入圖片描述項目具體代碼截圖

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <string.h>
#include <time.h>
#include <sys/timeb.h>#define MAX 1000
// 獲取當前系統的時間
long getSystemTime() {struct timeb tb;ftime(&tb);return tb.time * 1000 + tb.millitm;
}void PrintArray(int arr[], int length) {for (int i = 0; i < length; i++) {printf("%d ", arr[i]);}printf("\n");
}
void Swap(int* a, int* b) {int temp = *a;*a = *b;*b = temp;
}// 冒泡排序的算法
void BubbleSort(int arr[], int length) {int flag = 0;for (int i = 0; i < length && flag == 0; i++) {flag = 1; // 表示認為已經排序好了for (int j = length - 1; j > i; j--) {if (arr[j - 1] < arr[j]) {// 第二個數比第一個數小交換位置flag = 0;Swap(&arr[j - 1], &arr[j]);}}}}// 選擇排序
void SelectSort(int arr[], int length) {// 選擇排序減少交換次數for (int i = 0; i < length; i++) {int min = i;for (int j = i + 1; j < length; j++) {if (arr[j] < arr[min]) {min = j; // 修改下標}}if (min != i) {Swap(&arr[min], &arr[i]);}}}
int main(void)
{int arr[MAX];int arr2[MAX];srand((unsigned int)time(NULL));for (int i = 0; i < MAX; i++) {int randNum = rand() % MAX;arr[i] = randNum;arr2[i] = randNum;}//冒泡排序long bubbleelect_start = getSystemTime();BubbleSort(arr, MAX);long bubbleelect_end = getSystemTime();printf("冒泡排序%d個元素所需要的時間:%ld\n", MAX, bubbleelect_end - bubbleelect_start);//選擇排序long tselect_start = getSystemTime();SelectSort(arr2, MAX);long teslect_end = getSystemTime();printf("選擇排序%d個元素所需要的時間:%ld\n", MAX, teslect_end - tselect_start);return 0;
}

項目運行結果展示
在這里插入圖片描述

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

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

相關文章

Java發展史

Java發展史 Java歷史的幾個重要節點&#xff1a; 1990&#xff0c;Sun公司啟動了一個名為“綠色計劃”的項目&#xff0c;由James Gosling等領導&#xff0c;目標是開發一種可以在機頂盒等消費性電子產品上運行的程序架構。這個計劃產生了Java的前身&#xff1a;Oak&#xff…

Java八股文面試全套真題【含答案】-XML篇

XML 是什么&#xff1f;它的全稱是什么&#xff1f; 答案&#xff1a;XML&#xff08;可擴展標記語言&#xff09;是一種用于描述數據的標記語言&#xff0c;用于存儲和交換結構化的信息。XML 的全稱是 eXtensible Markup Language。XML 和 HTML 有什么區別&#xff1f; 答案&a…

看圖學源碼 之 ConcurrentHashMap put、get、remove、clear、擴容等相關方法的源碼分析

ConcurrentHashMap 引入 HashMap 的弊端 多線程下是不安全的&#xff0c;是有死循環的 JDK1.7 的時候會使用頭插法將新的節點增加到頭部&#xff0c;那么就會造成鏈表翻轉成為了閉環&#xff0c;就是所謂的死循環。 JDK1.8之后使用的是尾插法&#xff0c;因此不會造成環形鏈…

京東數據運營:京東API接口有哪些?京東數據如何采集調用?

市場分析對于電商品牌來說非常重要&#xff0c;它可以幫助電商品牌更好地理解市場&#xff0c;把握市場機會&#xff0c;以及制定有效的產品定價、產品營銷策略等等。 結合市場中可以幫助品牌方做市場分析的電商數據分析工具——鯨參謀電商數據分析平臺&#xff0c;我們一起具體…

在Mac上安裝Windows應用程序的簡便方法:CrossOver for Mac

對于許多Mac用戶來說&#xff0c;有時候他們可能需要使用一些只有在Windows上才能找到的應用程序。以前&#xff0c;解決這個問題的方法是通過安裝Windows虛擬機或使用雙系統來在Mac上運行Windows應用程序。但這些方法需要額外的硬件資源和時間來配置&#xff0c;并且可能會導致…

IOT安全學習路標

1. 物聯網基礎知識 首先&#xff0c;你需要建立堅實的物聯網基礎知識&#xff0c;包括IoT的架構和組件&#xff0c;傳感器和設備的連接和通信技術&#xff0c;云端和邊緣計算等。 2. 通信和網絡安全 學習關于物聯網通信和網絡安全的基礎知識&#xff0c;包括加密和認證技術、…

通俗解釋一下“強靜態類型”

我寫軟件已經有 20 多年了&#xff0c;隨著時間的推移&#xff0c;我越來越確信強靜態類型不僅是一個好主意&#xff0c;而且幾乎總是正確的選擇。 非類型化語言(或語言變體)肯定有用途&#xff0c;例如&#xff0c;當使用 REPL 時&#xff0c;或者在已經無可救藥的無類型環境(…

有什么進銷存軟件能對接微信小程序?

有什么進銷存軟件能對接微信小程序&#xff1f; 據我所知&#xff0c;很多進銷存軟件都有配套的微信小程序吧。 以我們現在用的這個為例&#xff0c;這也是同行推薦過來的&#xff0c;很好用&#xff0c;而且性價比很高—— 在線平臺&#xff0c;無需下載APP&#xff0c;搭載…

C語言實戰演練之跳動的愛心C語言版

跳 動 的 愛 心 - LOVE - 完整程序 #include <stdio.h> #include <math.h> #include <windows.h> #include <tchar.h> float f(float x, float y, float z) {float a x * x 9.0f / 4.0f * y * y z * z - 1;return a * a * a - x * x * z * z …

ELK簡單介紹一

任務背景 運維人員需要對系統和業務日志進行精準把控&#xff0c;便于分析系統和業務狀態。日志分布在不同的服務器上&#xff0c;傳統的使用傳統的方法依次登錄每臺服務器查看日志&#xff0c;既繁瑣又效率低下。所以我們需要集中化的日志管理工具將位于不同服務器上的日志收…

藍橋杯日期問題

藍橋杯其他真題點這里&#x1f448; 注意日期合法的判斷 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;public class Main{static int[] days {0,31,28,31,30,31,30,31,31,30,31,30,31};static BufferedReader in new Buf…

【核心重點】Flink四大基石

1. Time&#xff08;時間機制&#xff09; 時間概念 處理時間&#xff1a;執行具體操作時的機器時間&#xff08;例如 Java的 System.currentTimeMillis()) &#xff09;事件時間&#xff1a;數據本身攜帶的時間&#xff0c;事件產生時的時間。攝入時間&#xff1a;數據進入 …

linux vim 基礎設置-自動填充文件頭

前言 當前為vimrc腳本設置&#xff0c;腳本位置在 ~/.vimrc or /etc/vimrc 當前為首次打開 C C Shell 文件&#xff0c;自動填充對應文件頭信息&#xff0c;再次打開時會修改對應時間信息 :set nu "顯示行號 :set hlsearch "搜索時 高亮"新建 .c .cpp .sh文件&a…

理解Go語言中的defer

引言 Go有許多在其他編程語言中可以找到的常見控制流關鍵字,例如if、switch、for等。defer是其他大多數編程語言中沒有的關鍵字,盡管它不太常見,但你很快就會看到它在你的程序中有多么有用。 defer語句的主要用途之一是清理資源,例如打開的文件,網絡連接和數據庫句柄。在…

在AWS Lambda上部署EC2編譯的FFmpeg工具——自定義層的方案

大綱 1 確定Lambda運行時環境1.1 Lambda系統、鏡像、內核版本1.2 運行時1.2.1 Python1.2.2 Java 2 環境準備2.1 創建EC2實例 3 編譯FFmpeg3.1 連接EC2 4 編譯5 上傳S3存儲桶5.1 創建S3桶5.2 創建IAM策略5.3 創建IAM角色5.4 EC2關聯角色5.5 修改桶策略5.6 打包并上傳 6 創建Lamb…

智能優化算法應用:基于海鷗算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼

智能優化算法應用&#xff1a;基于海鷗算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼 文章目錄 智能優化算法應用&#xff1a;基于海鷗算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼1.無線傳感網絡節點模型2.覆蓋數學模型及分析3.海鷗算法4.實驗參數設定5.算法結果6.參考文獻7.MA…

【nuxt3】cannot read preperties of null (reading ‘$nuxt‘)

問題描述 vue3 中&#xff0c;通過 createVNode 創建子組件實例時&#xff0c;發現子組件無法獲取到父組件中的 router、store 信息&#xff0c;一旦子組件使用就會報錯。 問題原因 通過控制臺斷點調試&#xff0c;發現時 appContext 值為空導致的。懷疑是創建子組件的時候&a…

海外地區開啟IPV6無法訪問服務器問題

前言 最近有海外地區的用戶反饋無法訪問公司的網絡&#xff0c;無法下載應用和系統進行升級。了解到瀏覽器可以正常訪問公司域名&#xff0c;谷歌&#xff0c;油管等都能正常使用。日志分析GET請求服務器數據時沒有得到應答&#xff0c;最終查詢網絡相關修改確認與網絡IPV6有關…

掌握游戲開發的全方位知識:這些內容你一定要知道

游戲開發是一項涉及多學科的綜合性工作&#xff0c;從游戲設計到編程、美術、音頻、測試等多個方面都需要開發者具備廣泛的知識。以下是進行游戲開發時需要掌握的主要知識領域。 首先&#xff0c;游戲設計是整個過程的基石。這包括游戲機制和玩法設計、關卡設計、用戶界面&…

表示你的shell未被正確配置以使用conda activate--換成清華源anaconda

1 CommandNotFoundError: Your shell has not been properly configured to use conda activate. If using conda activate from a batch script, change your invocation to CALL conda.bat activate.To initialize your shell, run$ conda init <SHELL_NAME>這個錯誤提…