C语言 数组排序 – 快速法排序 - C语言零基础入门教程
生活随笔
收集整理的這篇文章主要介紹了
C语言 数组排序 – 快速法排序 - C语言零基础入门教程
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
目錄
- 一.簡(jiǎn)介
- 二.數(shù)組快速法排序原理
- 三.數(shù)組快速法排序?qū)崙?zhàn)
- 四.猜你喜歡
零基礎(chǔ) C/C++ 學(xué)習(xí)路線推薦 :?C/C++ 學(xué)習(xí)目錄?>>?C 語言基礎(chǔ)入門
一.簡(jiǎn)介
經(jīng)過前面的學(xué)習(xí),我們已經(jīng)學(xué)會(huì)了數(shù)組遍歷,在開發(fā)中,我們經(jīng)常回碰到對(duì)數(shù)組進(jìn)行排序,例如:學(xué)習(xí)成績(jī)排序,身高排序,年齡排序等等;在 C 語言中常見的數(shù)組排序一共有四種:
- 1.冒泡法排序
- 2.選擇法排序
- 3.插入法排序
- 4.快速法排序
二.數(shù)組快速法排序原理
快速排序法號(hào)稱是目前最優(yōu)秀的算法之一,實(shí)現(xiàn)思路是,將一個(gè)數(shù)組的排序問題看成是兩個(gè)小數(shù)組的排序問題,而每個(gè)小的數(shù)組又可以繼續(xù)看成更小的兩個(gè)數(shù)組,一直遞歸下去,直到數(shù)組長度大小最大為 2。
三.數(shù)組快速法排序?qū)崙?zhàn)
/******************************************************************************************/ //@Author:猿說編程 //@Blog(個(gè)人博客地址): www.codersrc.com //@File:C語言教程 - C語言 數(shù)組排序 – 快速法排序 //@Time:2021/06/08 08:00 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累! /******************************************************************************************/#include<stdlib.h> #include<stdio.h> //快速排序 void quickSort(int *arr, int l, int r) {//此處編寫代碼實(shí)現(xiàn)快速排序int i, j, x, temp;if (l < r){i = l;j = r;x = arr[(l + r) / 2];//以中間元素為軸while (1){while (i <= r && arr[i] < x)i++;while (j >= 0 && arr[j] > x)j--;if (i >= j) //相遇則跳出break;else{temp = arr[i];arr[i] = arr[j];arr[j] = temp;//交換}}quickSort(arr, l, i - 1); //對(duì)左半部分進(jìn)行快排quickSort(arr, j + 1, r); //對(duì)右半部分進(jìn)行快排} } void main() {int a[] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 10 };int len = sizeof(a) / sizeof(int);for (int i = 0; i < len; i++){printf("排序之前:index:%d value:%d\n", i, a[i]);}//快速法排序quickSort(a, 0, 9);printf("-----------------------------------\n");for (int i = 0;i<len;i++){printf("排序之后:index:%d value:%d\n", i, a[i]);}system("pause"); }/* 輸出:排序之前:index:0 value:9 排序之前:index:1 value:8 排序之前:index:2 value:7 排序之前:index:3 value:6 排序之前:index:4 value:5 排序之前:index:5 value:4 排序之前:index:6 value:3 排序之前:index:7 value:2 排序之前:index:8 value:1 排序之前:index:9 value:10 ----------------------------------- 排序之后:index:0 value:1 排序之后:index:1 value:2 排序之后:index:2 value:3 排序之后:index:3 value:4 排序之后:index:4 value:5 排序之后:index:5 value:6 排序之后:index:6 value:7 排序之后:index:7 value:8 排序之后:index:8 value:9 排序之后:index:9 value:10 請(qǐng)按任意鍵繼續(xù). . . */四.猜你喜歡
未經(jīng)允許不得轉(zhuǎn)載:猿說編程 ? C 語言 數(shù)組排序 – 快速法排序
總結(jié)
以上是生活随笔為你收集整理的C语言 数组排序 – 快速法排序 - C语言零基础入门教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OD(Ollydbg)简介
- 下一篇: java 什么是迭代器