算法导论-算法基础-2.1插入排序 (从小到大)
生活随笔
收集整理的這篇文章主要介紹了
算法导论-算法基础-2.1插入排序 (从小到大)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 偽代碼
2 執行過程圖
3 c語言實現完整代碼
#include<stdio.h> #include<malloc.h>typedef struct MyArray{int *pbase;int length; }MyArray,*PMyArray;PMyArray initMyArray(); void traverse(PMyArray pMyArray); void insertSort(PMyArray pMyArray); int main(){//初始化排序數組PMyArray pMyArray = initMyArray();//遍歷數組printf("數組元素分別為:\n");traverse(pMyArray);//排序insertSort(pMyArray);//遍歷數組printf("\n數組元素分別為:\n");traverse(pMyArray);return 1; };//插入排序 void insertSort(PMyArray pMyArray){if(pMyArray->length <= 0){printf("數組長度為0,排序失敗");}else if(pMyArray->length == 1){}else{int j = 1;for(; j < (pMyArray->length); j++){;int key = *(pMyArray->pbase +j);int i = j - 1;while( i >= 0 && *(pMyArray->pbase + i) > key ){* (pMyArray->pbase + i + 1) = *(pMyArray->pbase + i );i--;}*(pMyArray->pbase + i + 1) = key;}}};//遍歷數組 void traverse(PMyArray pMyArray){int i;for(i = 0 ; i < pMyArray->length;i++){printf("%d ",*(pMyArray->pbase + i));} } //初始化數組 PMyArray initMyArray(){//初始化參數int lengh;printf("輸入需要排序的個數:");scanf("%d",&lengh);//初始化結構體PMyArray pMyArray = (MyArray *)malloc(sizeof(MyArray));if(pMyArray == NULL){printf("內存不夠,初始化pMyArray失敗");exit(1);}pMyArray->length = lengh;pMyArray->pbase = (int *)malloc(sizeof(int)*lengh);int i = 0;for(;i < pMyArray->length; i++){printf("請輸入第%d個元素值:",i);int value;scanf("%d",&value);*(pMyArray->pbase +i) = value;}return pMyArray;}
總結
以上是生活随笔為你收集整理的算法导论-算法基础-2.1插入排序 (从小到大)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言数组方式实现静态循环队列
- 下一篇: c递归实现 汉诺塔