c語言實現 堆排序和插入排序

2022-08-03 09:36:08 字數 1199 閱讀 8692

#include#include/* p是迴圈輸出的下表*/

int p=0;

/*堆調整演算法*/

/* r陣列 , 根結點的編號為k,最後乙個結點的編號為m */

void sift(int r[ ], int k, int m)

}/*輸出每一次 調整的***/

printf("no.%d line:\t", p);

for(i = 1; i< 7 ;i++)

printf("\n----------------------------------\n");

}/*堆排序演算法*/

void heapsort(int r[ ], int n) /* r[0]為交換的臨時單元*/

}/*主函式*/

int main()

; /* 排序前的數 */

printf("heap sort before:");

for(i = 1; i< 7; i++)

printf("%3d", r[i]);

/* 輸出排序後的數 */

printf("\n heap sort after:\n");

heapsort(r, 6);

system("color 4e");

system("pause");

return 0;

}

1 #include2 #include3

4void insertsort(int r[ ], int n) /*

r[0]用作暫存單元和監視哨*/5

14}15int

main()

16;

19 printf("

排序之前的元素是");

20for(i = 1; i< 8; i++)

21 printf("

%3d"

, r[i]);

22 printf("

\n排序後的元素是:");

23 insertsort(r, 7

);24

for(i = 1; i< 8 ;i++)

25 printf("

%3d"

, r[i]);

26return0;

27 }

插入排序和希爾排序,C語言實現

插入排序的思想 只有乙個元素的陣列一定是有序的,我們可以把第二個元素放在正確的位置,使這兩個元素組成的陣列保持有序。接著可以把第三個元素放在正確的位置,使這三個元素組成的陣列仍然保持有序。陣列的插入操作的時間複雜度為o n 需要執行n 1次,所以插入排序的時間複雜度是o n2 插入排序是簡單排序中最...

C語言實現插入排序

插入排序 我在學習一些簡單的演算法,我用文字記錄我的進步。插入排序 其實就是在待排序列中找到,沒有排序好的元素,插入的適當的位置,本文以公升序為例,簡單的講解一下。直接看下面的 include stdio.h include stdlib.h include string.h void swap i...

C語言實現插入排序

插入排序是排序演算法的一種,它不改變原有的序列 陣列 而是建立乙個新的序列,在新序列上進行操作。這裡以從小到大排序為例進行講解。插入排序的基本思想是,將元素逐個新增到已經排序好的陣列中去,同時要求,插入的元素必須在正確的位置,這樣原來排序好的陣列是仍然有序的。在實際使用中,通常是排序整個無序陣列,所...