【leetcode】排序演算法筆記
阿新 • • 發佈:2018-12-12
1.氣泡排序
//氣泡排序
void BubbleSort(int *a, int length)
{
for (int i = 0;i < length - 1;i++)
{
for (int j = 0;j < length - i - 1;j++)
{
if (a[j] > a[j + 1])
{//冒泡,交換
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
2.選擇排序
//選擇排序 void SelectSort(int *a, int length) { for (int i = 0;i < length-1;i++) { int k = i; for (int j = i + 1;j < length;j++) { if (a[j] < a[k]) { k = j; } } //找到了最小值 if (k != i) {//交換資料 int temp = a[i]; a[i] = a[k]; a[k] = temp; } } }
3.插入排序
//插入排序
void InsertSort(int *a, int length)
{
for (int i = 1;i < length;i++)
{
int j = i;
while (a[j - 1] > a[j] && j >= 0)
{
//交換資料
int temp = a[j];
a[j] = a[j - 1];
a[j - 1] = temp;
//更新j的值
j--;
}
}
}