資料結構 雜記 選擇排序

2021-08-09 03:34:30 字數 1764 閱讀 1616

#include

#include

int main()

if((pi=(int*)malloc(sizeof(int)))==null)

sprintf(stderr,"insufficient memory");

pi=(int*)malloc(sizeof(int));
先介紹關於數值交換:

void swap(int

*a, int

*b)

#define swap(x,y,t) ((t)=(x),(x)=(y),(y)=(t))
#include

#include

//需要借助上面的數值交換的過程;

void swap(int *a, int *b)

void choice_sort(int

array, size_t size_of_array)

size_t i = 0, j = i, min = 0;

size_t k=0;

//在進行迴圈遍歷時,i的值不可能是負數,所以不建議使用int來定義;

for (i = 0; i < size_of_array - 1; ++i)

//對於上述的比較結果,使用swap函式進行交換;

swap(&array[i], &array[min]);

//這裡將每次交換的的結果進行簡單的輸出;

for(k=0;kprintf("%d\t",array[k]);

printf("\n");

}}int main()

; choice_sort(array, sizeof(array) / sizeof(int));

size_t i = 0;

for (i = 0; i < sizeof(array) / sizeof(int); ++i)

printf("%d\t", array[i]);

}

*選擇排序動態圖(借別人的一張圖):

//t 這裡使用了模板程式設計的函式程式設計的一點知識,t的型別可以跟據已經傳遞引數的型別自動進行推導可以處理int,float,double等常見型別,**的復用性要比單純定義int一種型別的更好,這也是模板程式設計的優勢;

template

//這裡不在使用指標,使用c++語言的引用來進行處理,對應於引用是必須繫結乙個相同型別的物件的,引用不應該為空;

void myswap(t &left, t &right)

template

void choice_sort(t array, size_t sizeof_array)

myswap(array[i],array[min]);

}}int main()

; choice_sort(array,sizeof(array)/sizeof(int));

for(auto x:array)

cout

<< x << " ";

cout

<< endl;

}

資料結構 雜記

1.哈爾夫曼樹 2.前序遍歷 根 左 右 1.訪問根節點 2.前序遍歷左子樹 3.前序遍歷右子樹 中序遍歷 左 根 右 1.中序遍歷左子樹 2.訪問根節點 3.中序遍歷右子樹 後序遍歷 左 右 根 1.後序遍歷左子樹 2.後序遍歷右子樹 3.訪問根節點 3.廣義表最基本的操作 取表頭head ls ...

資料結構 排序 選擇排序

選擇排序 所謂選擇排序,就是不斷從剩下的元素中選擇最小的元素放入前面,那麼 前面 我們就從下標為 0 i 0 的第乙個元素開始 此時我們假設下標為 0 的元素是最小的,minindex 0,minindex 就是最小值的索引 相應的剩下的元素則從 i 1 的位置開始,也就是從 1 開始,然後依次與 ...

資料結構 排序(選擇排序)

排序 選擇排序法 include include include include 選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理是每一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。選擇排序是不穩定的排序方法 ...