八種排序演算法(C語言簡易版)

2021-07-04 14:35:55 字數 2284 閱讀 4872

排序,從小到大接觸最多的事件,班級排名,學校排名

在程式中,排序的思路很多,優先列出如下演算法

#include

#include

//巨集定義 maxd暫定100

#define maxd 100

//定義關鍵字 型別為int

typedef

int keytype;

//其他資料項,型別暫定int

typedef

int infotype;

//元素型別

typedef

struct

rectype;//排序的元素型別定義

//基數排序

//data域存放關鍵字,它是乙個字元陣列,

//data[0..maxd-1]依次存放關鍵字的低位到高位的各數字字元,

// 關鍵字的實際位數由引數d指定。

typedef

struct node

rectype1;

//直接插入排序演算法

//對r[0...n-1]按遞增有序進行直接插入排序

void insertsort(rectype r,int n)

r[j+1]=tmp;

}

}//希爾排序

//對r[0...n-1]按遞增有序進行希爾排序

void shellsort(rectype r,int n)

}gap=gap/2;

}} //交換排序 (氣泡排序)

//對r[0...n-1]按遞增有序進行交換排序

void bubblesort(rectype r,int n)

} } //快速排序

//對r[s]至r[t] 按遞增有序進行交換排序

void quicksort(rectype r,int s,int t)

while(i.key

<=tmp.key)

}r[i]=tmp;

quicksort(r,s,i-1);

quicksort(r,i+1,t);

}}//直接選擇排序

//對r[0...n-1]按遞增有序進行直接選擇排序

void selectsort(rectype r,int n)

}if(k!=j)

}} //堆排序,分為兩個步驟

//堆排序——調整堆

void sift(rectype r,int low,int high)

if(tmp.key

.key)

else

}r[i]=tmp;

} //堆排序——排序

//對r[0...n-1]按遞增有序進行堆排序

void heapsort(rectype r,int n)

for(i>n;i>=2;i--)

} //二路歸併排序共有3個步驟

//二路歸併排序-----1

void merge(rectype r,int low,int mid,int high)

else

while(i<=mid)

while(j<=high)

for(k=0,i=low;i<=high;k++,i++)

free(r1);

} //二路歸併排序-----2

void mergepass(rectype r,int length,int n)

if(i+length-1

1,n-1);

}}//二路歸併排序-----3

//對r[0...n-1]按遞增有序進行二路歸併排序

void mergesort(rectype r,int n)

}//基數排序

//輸出排序好的單鏈表

void displink(rectype1 *l)

printf("\n");

}//p為待排序序列的單鏈表指標

//r為基數

//d為關鍵字位數

void radixsort(rectype1 *p,int r,int d)

while(p!=null)

else

p=p->next;

}p=null;

for(j=0;iif(head[j]!=null)

else}}

t->next=null;

printf("按%s位排序\t",(i==0?"個":"十"));

dislink(p);

}}int main()

C語言簡易版2048

二維陣列 int board 4 4 int if need rand 是否需要生成隨機數 int if game over 遊戲是否結束 介面 void showgame else if i 3 else void gameover 隨機位置生成隨機數2或4 void addrand else 初...

c語言簡易版文法

程式 外部宣告 程式 外部宣告 外部宣告 函式定義 宣告 函式定義 型別說明 宣告符 符合語句 型別說明 宣告符 指標直接宣告符 直接宣告符 指標 指標 直接宣告符 識別符號 常量表示式 參數列 識別符號列表 復合語句 語句列表 宣告列表 宣告列表 宣告 宣告列表宣告 識別符號列表 識別符號 識別符...

簡單的排序演算法 桶排序 簡易版

啊哈!演算法 筆記 桶排序顧名思義,像是用有順序的桶子一樣的東西來裝東西排序。那麼來舉個例子 我現在有5個分數3,1,2,4,3 滿分5分 這五個分數需要按從小到大來排個序12334,我們用桶排序該怎麼排呢?如下 includeint main 定義木桶並初始化,因為我們要在012345個分數中排序...