直接插入排序(穩定演算法)的基本思想:從第乙個數開始,認定陣列的前i個數有序,依次遍歷陣列,把後面的資料插入到合適的位置,使陣列繼續保持有序。
#include void swap(int* a, int* b)
//直接插入排序 公升序
void insertsort_up(int* arr, int length)
arr[j + 1] = temp;
} return;
}//直接插入排序 降序
void insertsort_down(int* arr, int length)
arr[j + 1] = temp;
} return;
}void printarr(int* arr, int length)
printf("\n");
return;
}int main( );
int length = sizeof(a) / sizeof(a[0]);
insertsort_up(a, length);
printarr(a, length);
insertsort_down(a, length);
printarr(a, length);
return 0;
}
時間複雜度:最佳情況o(n),最壞情況o(n^2),平均時間複雜度o(n^2)。
空間複雜度:需要乙個臨時變數temp來儲存即將插入的資料所以o(1)。
直接插入排序 C語言
插入排序是最簡單的一種排序方法。它的基本操作就是將乙個記錄插入到已排好序的有序表中,從而得到乙個新的 記錄數增1的有序表。直接插入排序時,我們將第二個陣列元素作為插入數,第乙個數作為有序陣列。逐個比較兩者大小,最後將數插入到合適位置。實現 插入排序 void inse int data int t ...
直接插入排序 C語言
當我們打撲克牌的時候,為了使手中的牌順序排列,我們平常都會這麼做,每抽到一張牌,就會將它直接插入到適當的位置。例如 我們手上有1 3 4 5這四張牌,而當我們再抽到乙個2的時候,我們需要將2插入到1和3之間,這樣就能完成手中牌的順序排列。直接插入排序基本操作就是將乙個資料插入到已經排序好的有序序列中...
C 語言 直接插入排序
include 直接插入排序 公升序的方式 void insertsort up int arr,int length arr j 1 temp printarr arr,length return 直接插入排序 降序的方式 void insertsort down int arr,int leng...