#include
#include
"student.h"
#include
"sorttesthelper.h"
using namespace std;
/** * 選擇排序
* @tparam t 使用模板可以接受任意型別引數
* @param arr 待排序的陣列
* @param n 陣列大小
*/template
void
selectionsort
(t arr,
int n)
//交換找到的最小值和之前的最小值
swap
(arr[i]
, arr[minindex]);
}}}int
main()
#ifndef test_student_h
#define test_student_h
#include
#include
using namespace std;
/** * 學生結構體
*/struct student
//過載輸出運算子
friend ostream &operator<<
(ostream &os,
const student &student)};
#endif
//test_student_h
#ifndef test_sorttesthelper_h
#define test_sorttesthelper_h
#include
#include
#include
#include
using namespace std;
namespace sorttesthelper
return arr;
}/**
* 列印陣列
* @tparam t
* @param arr 接收的陣列
* @param n 陣列大小
*/template
void
printarray
(t arr,
int n)
cout << endl;
}/**
* 判斷陣列是否有序
* @tparam t
* @param arr
* @param n
* @return
*/template
bool issorted
(t arr,
int n)
return true;
}/**
* 計算排序花費的時間
* @tparam t
* @param sortname
* @param sort
* @param arr
* @param n
*/template
void
testsort
(const string &sortname,
void
(*sort)
(t ,
int)
, t arr,
int n)
}#endif
//test_sorttesthelper_h
資料結構與演算法 複習 直接選擇排序 堆排序
程式說明 複習 直接選擇排序 include include struct recordnode 記錄 型別 typedef struct recordnode precordnode struct sortobject 排序目標 typedef struct sortobject psortobj...
資料結構與演算法 排序 選擇排序
資料結構與演算法 排序 選擇排序 sort selectsort include includevoid selectsort int list,int len if print list,len for selectsort int minkey int list,int i,int len if...
資料結構與演算法 選擇排序
選擇排序 從小到大 的基本思想是,首先,選出最小的數,放在第乙個位置 然後,選出第二小的數,放在第二個位置 以此類推,直到所有的數從小到大排序。在實現上,我們通常是先確定第i小的數所在的位置,然後,將其與第i個數進行交換。下面,以對 3 2 4 1 進行選擇排序說明排序過程,使用min index ...