Exemple #1
0
void shell_sort(int num[], int n) {
	for (int incr = n / 2; incr > 2; incr /= 2){ //增量,从n/2 --> n/4 --> n/8 --> ... --> 2
		for (int j = 0; j < incr; j++){// 对每个子表排序
			insert_sort2(num, j, n - j, incr); //子表起始于j,结尾与n-j,增量incr
		}
	}
	insert_sort2(num, 0, n, 1); //最后,起始于0,结尾与n,增量1
}
int main(int argc, char **argv) {
  srand(time(NULL));
  int r_array[100], i;
  for (i = 0; i < R_SIZE; i++) {
	r_array[i] = rand() % 100 + 1;      /* generate random number between 1 and 100 */
  }
  int a[KSIZE] = {5, 7, 0, 3, 4, 2, 6, 1};
  insert_sort2(a, KSIZE);
  printf ("\n");
  insert_sort2(r_array, R_SIZE);
  /* print(a); */
  return 0;
}
Exemple #3
0
int main()
{
    int a[10] = {23, 1, 34, 21, 11, 4, 5, 2, 1, 12};
    for(int i = 0; i < 10; i++)
    {
        printf("a[%d]: %d \n", i, a[i]);
    }

    insert_sort(a, 10);
    for(int i = 0; i < 10; i++)
    {
        printf("a[%d]: %d \n", i, a[i]);
    }

    int b[]= {11 ,3 ,1 ,5 ,2 ,23 ,8 ,4 ,1 ,123};
    for(int i = 0; i < 10; i++)
    {
        printf("b[%d]: %d \n", i, b[i]);
    }

    insert_sort2(b, 10);
    for(int i = 0; i < 10; i++)
    {
        printf("b[%d]: %d \n", i, b[i]);
    }
    return 0;
}