//實現兩個個函式,輸入陣列和陣列個數,從小到大排序,要求使用函式模板。
//支援 int char float double long。
//(乙個函式使用快速排序法,乙個函式使用插入排序法)
templatevoid insertionsort(t *arr, const int count)
//更新pos,當pos不小於0就和下乙個間隔的數值再比較
pos -= gap;
}} gap = gap / 2;
} //gap==1,直接插入法
for (i = 1; i < count; ++i)
--pos;
} }return;
}templatevoid swap(t* a, t*b)
templatevoid qksort(t *arr, int begin, int end)
while (begin < end)
while (begin < end && (arr[end] >= key))
if (begin < end)
}//當前後指標重合後,交換基準值和開始的指標指向的元素
swap(&arr[begin], &arr[keyindex]);
int mid = begin;//begin就是中間值的下標
//對左邊區進行排序[begin,mid)
//對右邊區進行排序[mid+1,end]
qksort(arr, start, mid);
qksort(arr, mid + 1, keyindex);
return;
}templatevoid quicksort(t *arr, const int count)
//列印
templatevoid show(t *arr, const int count)
cout << endl;
}
#include"sort.h"
#include#include#includeusing namespace std;
int main(int argc, char* ar**)
switch (input)
}cout << "select the method of sort:<0.insertionsort or 1.quicksort>";
cin >> num;
if (0 == num)
else if (1 == num)
else
break;
} case 2:
}cout << "select the method of sort:<0.insertionsort or 1.quicksort>";
cin >> num;
if (0 == num)
else if (1 == num)
else
break;
} case 3:
}cout << "select the method of sort:<0.insertionsort or 1.quicksort>";
cin >> num;
if (0 == num)
else if (1 == num)
else
break;
} case 4:
}cout << "select the method of sort:<0.insertionsort or 1.quicksort>";
cin >> num;
if (0 == num)
else if (1 == num)
else
break;
} case 5:
}cout << "select the method of sort:<0.insertionsort or 1.quicksort>";
cin >> num;
if (0 == num)
else if (1 == num)
else
break;
} default:
break;
} }delete arr1;
delete arr2;
delete arr3;
delete arr4;
delete arr5;
return 0;
}
快速排序和插入排序
下面介紹用快速排序法和插入排序法來給乙個一維陣列排序 具體 實現如下 快速排序法 function quick sort arr 獲取陣列的長度 len count arr 如果陣列的 1,說明不許排序 if len 1 選擇第乙個元素作為標尺 base arr 0 初始化兩個陣列 left arr...
快速排序和插入排序
快排還是看之前的那篇部落格吧,這個寫的不實用 基於 資料結構與演算法分析 182頁,寫的快速排序。對於樞紐元的選擇使用三數中值分割法。include include define cutoff 3 using namespace std 三數中值分割方法 int media3 vector vecu...
氣泡排序,快速排序,插入排序
一 氣泡排序 大致分兩步 1 依次對比相鄰2個數字,前者比後者大就調換位置 2 重複第一步操作,直到所有數字都按順序排列 function bubblesort arr return arr 二 快速排序大致分三步 1 找基準 一般是以中間項為基準 2 遍歷陣列,小於基準的放在left,大於基準的放...