各種排序方法的 語言實現

2021-04-13 21:46:29 字數 2235 閱讀 3871

對順序錶用c語言實現直接插入排序、折半插入排序、希爾排序、快速排序、選擇排序、冒泡優化排序、堆排序,**如下:

#include

#include

#include

#include

#include

#include

#define maxsize 100

typedef int redtype;

typedef struct sqlist

sqlist;

sqlist l;

void time()                                      //獲得系統時間

;time_t t;

struct tm *tp;

t=time(null);

tp=localtime(&t);

printf("/t        ─────────────────────/n");

printf("/t/t    現在是:%d年%d月%d日",tp->tm_year+1900,tp->tm_mon+1,tp->tm_mday);  

printf(" %d:%d:%d ",tp->tm_hour,tp->tm_min,tp->tm_sec,tp->tm_wday);

printf("星期%s/n",week[(tp->tm_wday)-1]);

}void print(sqlist *l)                             //列印排序結果

void stinsort(sqlist *l)                         //直接插入排序

l->int[j+1]=l->int[0];}}

void bis_int(sqlist *l)                          //折半插入排序

for(j=i-1;j>=high+1;--j)

l->int[j+1]=l->int[j];

l->int[high+1]=l->int[0];}}

void shell(sqlist *l)                            //希爾排序

l->int[j+d]=l->int[0];

}d=d/2;}}

void quick(sqlist *l,int low,int high)           //快速排序

while(iint[i]<=temp)              //左端進行掃瞄

i++; 

if(iint[j]=l->int[i];

j--;}}

l->int[i]=temp;

if(lowlength-1;i++)                  //做第i趟排序(1≤i≤length-1)

if(**all!=i)                             //交換值}}

void bubble(sqlist *l)                           //冒泡優化排序}}

}void buildheap(sqlist *l,int k,int m)            //建立堆

l->int[k]=x;                                 //插入

}void heapsort(sqlist *l)                         //堆排序

}void rand(sqlist *l)                             //隨機生成數字

}void init(sqlist *l)                             //初始化排序的資料

if(l->length<2||l->length>maxsize)

printf("/n");

for(i=1;i<=l->length;i++)

}printf("/n/n/n/n/t/t/t資料初始化成功,按任意鍵繼續→/n");

getch();

system("cls");

}void prin()                                      //格式化輸出─

int menue()

fflush(stdin);

return input_data;

}void sub_menue()}}

void main(void)

}while(input_data!=3);

}

C語言實現各種排序演算法

對輸入的n個數進行排序並輸出。輸入描述 輸入的第一行包括乙個整數n 1 n 100 接下來的一行包括n個整數。輸出描述 可能有多組測試資料,對於每組資料,將排序後的n個整數輸出,每個數後面都有乙個空格。每組測試資料的結果佔一行。輸入例子 4 1 4 3 2 輸出例子 1 2 3 4 ac code ...

C語言實現各種排序(1)

include 排序分為插入排序,希爾排序,氣泡排序,快速排序,選擇排序,堆排序,歸併排序,基數排序 桶排序 直接插入排序,較為簡單,思路為從第二個數開始逐個將其插入前面有序的序列中 平均時間複雜度為o n2 最快時間複雜度為o n 最壞時間複雜度為o n2 空間複雜度為o 1 void inser...

拓撲排序的 語言實現

執行步驟 由aov網構造拓撲序列的拓撲排序演算法主要是迴圈執行以下兩步,直到不存在入度為0的頂點為止。1 選擇乙個入度為0的頂點並輸出之 2 從網中刪除此頂點及所有 出邊。迴圈結束後,若輸出的頂點數小於網中的頂點數,則輸出 有迴路 資訊,否則輸出的頂點序列就是一種拓撲序列。ifndef queue ...