用C語言實現氣泡排序,插入排序,快速排序

2021-08-27 18:18:27 字數 1745 閱讀 6532

本篇文章分別介紹三種排序方法,氣泡排序,插入排序,快速排序。

為了便於提高效率與閱讀,借助rand()函式隨機分配整數初始化與賦值給陣列。

具體實現原理與過程請看**,帶有詳細的注釋,謝謝。

#include#include// 公共函式

void printarray(int *parray);

void createunordered(int *parray);

// 氣泡排序

void bubblerank(int *parray);

void createbubble(int *parray);

// 快速排序

void createqucikrank(int *parray);

void quickrank(int *parray, int low, int high);

int findpos(int *parray, int low, int high);

// 插入排序

void insertrank(int *parray);

void createinsertrank(int *parray);

#define arraynum 10

int main()

; // 建立氣泡排序

createbubble(array);

// 建立快速排序

createqucikrank(array);

// 建立插入排序

createinsertrank(array);

while(1);

}/*------------------------公共函式----------------------------*/

/* 函式名:createunordered給陣列元素變成無序

原理:通過時間來生成資料,為了便於觀察,我們生成兩位數的正數

*/void createunordered(int *parray)

printf("無序陣列元素:");

for(i=0; ihigh)

return;

int pos = findpos(parry, low, high);

quickrank(parry, low, pos-1);

quickrank(parry, pos+1, high);}/*

函式名:findpos

原理:把小於temp的值放左邊,大於temp的值放右邊

*/int findpos(int *parray, int low, int high)

parray[low] = temp;

return low;

}/*------------------------插入排序----------------------------*/

/* 函式名:createinsertrank建立插入排序函式

原理:由三部分組成

*/void createinsertrank(int *parray)

/* 函式名:insertrank插入排序函式

原理:從第二個元素開始與前乙個元素比較,較小的放前面,重複此過程

*/void insertrank(int *parray)

parray[++j] = temp; // 插入到指定的位置

}}

輸出結果為:

用Java語言實現氣泡排序和插入排序

一.氣泡排序 英語 bubble sort 台灣另外一種譯名為 泡沫排序 是一種簡單的 排序演算法 它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交...

C語言實現插入排序

插入排序 我在學習一些簡單的演算法,我用文字記錄我的進步。插入排序 其實就是在待排序列中找到,沒有排序好的元素,插入的適當的位置,本文以公升序為例,簡單的講解一下。直接看下面的 include stdio.h include stdlib.h include string.h void swap i...

C語言實現插入排序

插入排序是排序演算法的一種,它不改變原有的序列 陣列 而是建立乙個新的序列,在新序列上進行操作。這裡以從小到大排序為例進行講解。插入排序的基本思想是,將元素逐個新增到已經排序好的陣列中去,同時要求,插入的元素必須在正確的位置,這樣原來排序好的陣列是仍然有序的。在實際使用中,通常是排序整個無序陣列,所...