Please correct me if something wrong.
-------------- c++ code ----------------------
void updateVector(vector &ptr, int count) {
for (int i = 0; i < count; i++)
{
ptr.push_back(count - i);
// cout << i << " -> " << ptr[i] << endl;
}
}
void selection_sort(vector &ptr) {
clock_t start, stop;
double total;
long nsec;
long sec;
int min = 0;
cout << "Vector size : " << ptr.size() << endl;
start = clock();
for (int i = 0; i < (ptr.size() - 1); i++)
{
min = i;
for (int j = min + 1; j < ptr.size(); j++) {
if(ptr[j] < ptr[min]) {
min = j;
}
}
int temp = ptr[min];
ptr[min] = ptr[i];
ptr[i] = temp;
}
stop = clock();
total = (double)(stop - start) / CLOCKS_PER_SEC;
cout << "CPP Execution time : " << total << endl;
}
from main first call update function and then sort.
----------------------------------------- go code ---------------------------------------------------
func buildBuffer(count int) []int {
var buffer []int
buffer = make([]int, count)
for i := 0; i < count; i++ {
buffer[i] = count - i
//fmt.Printf("%d -> %d \n", i, buffer[i])
}
return buffer
}
func selection_sort(buf []int, count int) {
min := 0
t1 := time.Now()
for i := 0; i < count-1; i++ {
min = i
for j := i + 1; j < count; j++ {
if buf[min] > buf[j] {
min = j
}
}
buf[i], buf[min] = buf[min], buf[i]
}
t2 := time.Now()
elapse := t2.Sub(t1)
fmt.Printf("go Execution time : %f \n", elapse.Seconds())
}