幾種常見的排序例項 c

2021-10-04 20:21:16 字數 1721 閱讀 1883

部分函式儲存在下面的標頭檔案中。

不喜勿碰,有錯誤敬請指點,謝謝。

#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...