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