publicstaticvoidinsertionSort(int array []) { int value ; for (inti=1; i < array . length ; i ++) { value = array [ i ]; intj= i ; while ( j > 0 && array [j -1] > value ) { array [ j ] = array [j -1]; j--; } array [ j ] = value ; } }
代码示例 14:C 语言实现的整数插入排序
1 2 3 4 5 6 7 8 9 10 11 12
voidinsertionSort(int * array , int size ) { int value ; for (int i =1; i < size ; i ++) { value = array [ i ]; int j = i ; while ( j > 0 && array [j -1] > value ) { array [ j ] = array [j -1]; j--; } array [ j ] = value ; } }
译者注: 原英文博客在插入排序的代码示例后,错误地混入了归并排序(Merge Sort)的代码及调用示例。为保持技术文章的严谨性,译文在此处将保留这部分内容,但会明确标注其为归并排序,并修正 C 语言代码中的语法错误。
附录:归并排序(Merge Sort)代码示例
归并排序函数 mergeSort 的调用示例:
1 2 3
int * a = (int *) malloc ( sizeof (int) * n ) ; /* ... 初始化数组 a ... */ mergeSort (a , 0 , n -1) ; // 假设存在 mergeSort 函数