动图图解C语言选择排序算法,含代码分析
C語言文章更新目錄
C語言學習資源匯總,史上最全面總結,沒有之一
C/C++學習資源(百度云盤鏈接)
計算機二級資料(過級專用)
C語言學習路線(從入門到實戰(zhàn))
編寫C語言程序的7個步驟和編程機制
C語言基礎-第一個C程序
C語言基礎-簡單程序分析
VS2019編寫簡單的C程序示例
簡單示例,VS2019調(diào)試C語言程序
C語言基礎-基本算法
C語言基礎-數(shù)據(jù)類型
C語言中的輸入輸出函數(shù)
C語言流程控制語句
C語言數(shù)組——一維數(shù)組
C語言數(shù)組——二維數(shù)組
C語言數(shù)組——字符數(shù)組
C語言中常用的6個字符串處理函數(shù)
精心收集了60個C語言項目源碼,分享給大家
C語言核心技術——函數(shù)
C代碼是怎樣跑起來的?
C語言實現(xiàn)字符串的加密和解密
C語言——文件的基本操作
使用C語言鏈表創(chuàng)建學生信息并且將信息打印輸出
圖解C語言冒泡排序算法,含代碼分析
實例分析C語言中strlen和sizeof的區(qū)別
開發(fā)C語言的3款神器,VS2019、VScode和IntelliJ Clion
C語言實例
C語言實例第1期:十進制數(shù)轉(zhuǎn)換二進制數(shù)
C語言實例第2期:判斷某一年是否為閏年
C語言實例第3期:在控制臺打印出著名的楊輝三角
C語言實例第4期:交換數(shù)組中最大數(shù)和最小數(shù)的位置
選擇排序算法的原理
每一次從待排序的數(shù)據(jù)元素中選出最小(或最大)的一個元素,存放在序列的起始位置,然后,再從剩余未排序元素中繼續(xù)尋找最小(大)元素,然后放到已排序序列的末尾。以此類推,直到全部待排序的數(shù)據(jù)元素排完。
代碼實現(xiàn)
// // @author: 沖哥 // @date: 2021/12/24 14:43 // @description:實現(xiàn)選擇排序 // 微信關注公眾號【C語言中文社區(qū)】,免費領取300G精品編程資料#include <stdio.h>#define N 5 //數(shù)組中元素的個數(shù) void print_arr(int *); //將數(shù)組打印輸出 void select_sort(int *); //選擇排序int main(){int arr[N] = {23,12,33,20,45}; //定義數(shù)組并初始化printf("排序前的數(shù)據(jù)為:\n");print_arr(arr);printf("開始排序:\n");select_sort(arr);printf("排序后的數(shù)據(jù)為:\n");print_arr(arr); }void print_arr(int arr[]){//將數(shù)組循環(huán)遍歷輸出for (int i = 0; i < N; i++) {printf("%d\t", arr[i]);}printf("\n"); }void select_sort(int arr[]){int temp; //中間變量for (int i = 0; i < N-1; i++) { //外層循環(huán)for (int j = i+1; j < N; j++) { //內(nèi)層循環(huán)if (arr[i] > arr[j]){ //外循環(huán)里的元素和內(nèi)循環(huán)里的每一個元素比較//交換位置temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}print_arr(arr);}printf("\n"); }運行結果
排序前的數(shù)據(jù)為: 23 12 33 20 45 開始排序: 12 23 33 20 45 12 20 33 23 45 12 20 23 33 45 12 20 23 33 45排序后的數(shù)據(jù)為: 12 20 23 33 45從運行結果可以看出:
第一次掃描將23和12的位置互換
第二次掃描將23和20的位置互換
第三次掃描將23和33的位置互換
第四次掃描排序完成
為了更清楚地了解排序過程,請參照以下動圖圖解
動圖圖解選擇排序
如果您覺得本篇文章對您有幫助,請轉(zhuǎn)發(fā)給更多的人
【C語言中文社區(qū)】是一個C語言/C++視頻教程、學習筆記、電子書、計算機二級資料等專注于C語言/C++編程學習者的干貨知識分享平臺,精選深度文章,分享優(yōu)秀干貨類、技能類的學習資源,幫助學習中的你。
總結
以上是生活随笔為你收集整理的动图图解C语言选择排序算法,含代码分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言实例第4期:交换数组中最大数和最小
- 下一篇: 动图图解C语言插入排序算法,含代码分析