選擇排序:將要排序的物件分作兩部份,乙個是已排序的,乙個是未排序的,從後端未排序部份選擇乙個最小值,並放入前端已排序部份的最後乙個。
插入排序:像是玩樸克一樣,我們將牌分作兩堆,每次從後面一堆的牌抽出最前端的牌,然後插入前面一堆牌的適當位置。
氣泡排序:顧名思義,就是排序時,最大的元素會如同氣泡一樣移至右端,其利用比較相鄰元素的方法,將大的元素交換至右端,所以大的元素會不斷的往右移動,直到適當的位置為止。
基本的氣泡排序法可以利用旗標的方式稍微減少一些比較的時間,當尋訪完陣列後都沒有發生任何的交換動作,表示排序已經完成,而無需再進行之後的迴圈比較與交換動作
選擇排序
插入排序
氣泡排序
// sort.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include #include #include #define max 10
#define swap(x,y)
void selsort(int); // 選擇排序
void insort(int); // 插入排序
void bubsort(int); // 氣泡排序
int main(void) ;
int i;
//得到乙個從2023年1月1日到現在的時間秒數,這樣每一次執行程式的時間的不同就可以保證得到不同的隨機數了。
srand(time(null));
printf("排序前:");
for(i = 0; i < max; i++)
printf("\n請選擇排序方式:\n");
printf("(1)選擇排序\n(2)插入排序\n(3)氣泡排序\n:");
scanf("%d", &i);
switch(i)
return 0;
}//選擇排序
void selsort(int number)
}//插入排序
void insort(int number)
number[i+1] = tmp;
printf("第%d 次排序:", j);
for(k = 0; k < max; k++)
printf("%d ", number[k]);
printf("\n"); }}
//氣泡排序
void bubsort(int number)
} printf("第%d 次排序:", i+1);
for(k = 0; k < max; k++)
printf("%d ", number[k]);
printf("\n");
}}
Java排序演算法之氣泡排序 插入排序 選擇排序
一 前言 排序是日常中最常見的一種演算法,常見的演算法有 氣泡排序 插入排序 選擇排序 歸併排序 快速排序 計數排序 快速排序 基數排序 桶排序。那麼該怎樣分析和學習排序演算法呢?二 演算法的分析課 在上述的八種排序方法中,根據時間複雜度和是否基於比較可以為三種 排序演算法 時間複雜度 是否基於比較...
排序演算法 插入 選擇 冒泡 快排 歸併
可以找一些帖子理解下幾類排序演算法或者聽下陳越姥姥在mooc上的資料結構 選擇類排序 交換類排序 歸併排序 基數排序 拓撲排序 從待排序的n個記錄中的第二個記錄開始,依次與前面的記錄比較並尋找插入的位置,每次外迴圈結束後,將當前的數插入到合適的位置。void sort insert int a,in...
排序演算法詳解 選擇 插入 歸併和快排
特點 每次從待排序序列中選取最小值最為當前元素值 流程 已排好序的陣列為a 0,i 1 將未排序序列a i,n 中最小值賦給a i const int maxn 10000 int a maxn void selectsort int a,int n 特點 將未排序元素插入到已排序元素的合適位置上 ...