部分函式儲存在下面的標頭檔案中。
不喜勿碰,有錯誤敬請指點,謝謝。
#include
#include "fun1.h"
using namespace std;
int main() ;
int i, j;
//直接插入排序
/*for ( i = 1; i < 10; i++)
}*///希爾排序
/*int len = 10;
while (true)
a[k + len] = temp;
}if (len == 1)
break;
}*///折半插入排序
/*int mid, low, high,temp;
for (i = 1; i < 10; i++)
temp = a[i];
for (j = i;j > high + 1; j--)
a[j] = a[j - 1];
a[high + 1] = temp;
}*///冒泡--->相鄰交換咯ok
/*for(i=0;i<10;i++)
for(j=1;j<10-i;j++)
if (a[j] < a[j - 1]) */
//雙向氣泡排序
/*void doublesort(int arr, int len);
doublesort(a, 10);*/
//快速排序---》取乙個數(常常是第乙個)然後比它大的放後面比它小的放前面,反之一樣
/*void quicksort(int s, int l, int r);
quicksort(a, 0, 9);*/
//選擇排序---->每一趟從待排序的資料元素中選出最小(或最大)的乙個元素,直接和與之比較的進行交換,打亂了相對位置。不穩定。
/*for (i = 0; i < 10; i++)
if (i != x)
}*///堆排序
/*size1 = sizeof(a) / 4;
heapsort(a, size1);*/
cout << "排序後的結果為:" << endl;
for (i = 0; i < 10; i++)
cout << a[i] << " ";
return 0;
}#include
using namespace std;
void maxheap(int a, int n);
void buildmaxheap(int a, int n);
void heapsort(int a, int n);
int size1;
void doublesort(int arr, int len)
}right = sign;
for (i = right - 1; i >= left; i--)
}left = sign;}}
void quicksort(int s, int l, int r)
s[i] = x;
quicksort(s, l, i - 1); // 遞迴呼叫
quicksort(s, i + 1, r);}}
void heapsort(int a, int n)
}void buildmaxheap(int a, int n)
void maxheap(int a, int n)
}
c 常見的幾種排序
找到最小的元素,並記錄下它的下標,然後和第i個元素進行交換,每次進行乙個迴圈便找到乙個最小值。比如在乙個長度為n的無序陣列中,在第一趟遍歷n個資料,找出其中最小的數值與第乙個元素交換,第二趟遍歷剩下的n 1個資料,找出其中最小的數值與第二個元素交換 第n 1趟遍歷剩下的2個資料,找出其中最小的數值與...
幾種常見的排序C實現
include include 氣泡排序從小到大 第一趟得到最大的存到陣列的最後,第二趟得到陣列的第二大的,存到陣列的倒數第二位。依次。void bubble sort int p 列印輸出 for int i 0 i int length 6 取增量 int step length 2 while...
幾種常見的排序演算法(C
說到排序,網上一搜就有一大堆的部落格資料,涵蓋各種語言實現,而許多演算法書中更是寫的很詳細,寫此部落格只是記錄下所敲的這幾行 以便日後檢視。直接貼domo ifndef sort h define sort h include include using namespace std template...