C语言数据结构插入排序

#include stdio.h#include stdbool.h#define MAX 7int intArray[MAX] = {4,6,3,2,1,9,7};void printline(int count) {

编程学习网为您整理以下代码实例,主要实现:C语言数据结构插入排序,希望可以帮到各位朋友。

#include <stdio.h>
#include <stdbool.h>

#define MAX 7

int intArray[MAX] = {4,6,3,2,1,9,7};

voID printline(int count) {
   int i;

   for(i = 0;i < count-1;i++) {
      printf("=");
   }

   printf("=\n");
}

voID display() {
   int i;
   printf("[");

   // navigate through all items 
   for(i = 0;i < MAX;i++) {
      printf("%d ",intArray[i]);
   }

   printf("]\n");
}

voID insertionSort() {

   int valuetoInsert;
   int holeposition;
   int i;

   // loop through all numbers 
   for(i = 1; i < MAX; i++) { 

      // select a value to be inserted. 
      valuetoInsert = intArray[i];

      // select the hole position where number is to be inserted 
      holeposition = i;

      // check if prevIoUs no. is larger than value to be inserted 
      while (holeposition > 0 && intArray[holeposition-1] > valuetoInsert) {
         intArray[holeposition] = intArray[holeposition-1];
         holeposition--;
         printf(" item moved : %d\n" , intArray[holeposition]);
      }

      if(holeposition != i) {
         printf(" item inserted : %d, at position : %d\n" , valuetoInsert,holeposition);
         // insert the number at hole position 
         intArray[holeposition] = valuetoInsert;
      }

      printf("Iteration %d#:",i);
      display();

   }  
}

voID main() {
   printf("input Array: ");
   display();
   printline(50);
   insertionSort();
   printf("Output Array: ");
   display();
   printline(50);
}
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐