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