/*2018.01.23
*a:yuan
*t:其中排序演算法:氣泡排序,簡單排序,直接插入排序,希爾排序,堆排序,歸併排序,快速排序
*/#include #include #include #define maxsize 10000
#define false 0
#define true 1
typedef struct
sqlist;
void swap(sqlist *l,int i,int j)
//氣泡排序1
void bubble_sort0(sqlist *l)
} } }
//簡單排序法
void ******_selection_sort(sqlist *l)
} if(i != min)
swap(l,i,min); }}
void straight_insertion_sort(sqlist *l)
l->r[j+1] = l->r[0];
} }}void shell_sort(sqlist *l)
l->r[j+parameter] = l->r[0];
}} }while(parameter > 1);
}//堆排序
void heap_ajust(sqlist *l,int s,int m)
l->r[s]=temp;
}void heap_sort(sqlist *l)
for(i = l->length;i>1;i--) }
//快速排序——此時在它之前(後)的記錄均不大於(小)它
int partitiom(sqlist *l,int low,int high)
return low;
}void qsort(sqlist *l,int low,int high)
}void quicksort(sqlist *l)
//歸併排序
/*歸併排序的歸併函式*/
void merge(int sr, int tr, int i, int middle, int rightend)
if (i <= middle)
if (j <= rightend)
}
/*歸併排序遞迴函式*/
void msort(int sr, int tr1, int s, int t)
}
/*總體呼叫排序函式*/
void mergesort(sqlist *s)
int main(void)
bubble_sort0(l); //氣泡排序法
for(i = 0;ilength;i++)
#endif
*/ /*
//簡單排序法
sqlist l;
l.length = maxsize;
temp = l.length;
for(i = 0;i******_selection_sort(&l); //簡單排序法
for(i = 0;i*/
/* //直接插入排序演算法
sqlist l;
l.length = maxsize;
temp = l.length;
for(i = 1;istraight_insertion_sort(&l); //直接插入排序法
for(i = 1;i*/
/* //希爾排序
sqlist l;
l.length = maxsize;
temp = l.length;
for(i = 0;ishell_sort(&l); //希爾排序
for(i = 0;i*//*
//堆排序示例
sqlist l;
l.length = maxsize;
temp = l.length;
for(i = 0;iheap_sort(&l); //堆排序
for(i = 0;i*/
/* //快速排序示例
sqlist l;
l.length = maxsize;
temp = l.length;
for(i = 0;iquicksort(&l); //快速排序
for(i = 0;i*/ //歸併排序
sqlist l;
l.length = maxsize;
temp = l.length;
for(i = 0;iprintf("before sort.\n");
mergesort(&l); //歸併排序
for(i = 0;i}
七種排序演算法總結
根據排序過程中借助的主要操作,將7種內排序演算法按照下圖所示進行分類。將7種演算法的各種指標進行對比,如下表所示。從平均情況來看,顯然最後3種改進演算法要勝過希爾排序,並遠遠勝過前3種簡單演算法。從最好情況看,反而冒泡和直接插入排序要更勝一籌,也就是說,如果待排序列總是基本有序,反而不應該考慮四種複...
七種常用排序演算法總結
1.氣泡排序 bubble sort package com.zha.wmls.sort 氣泡排序 每一輪找出乙個最大的,放在最後面,穩定 時間複雜度為n 2 public class bubblesort long befortime system.currenttimemillis sort a...
七種定址方式
共7種定址方式 1.立即定址方式 立即數包含在指令中,作為指令的一部分。如 mov ax 1234h 2.暫存器定址方式 運算元在cpu內部的暫存器中,指令指定暫存器號 16位運算元,暫存器可以是 ax,bx,cx,dx,si,di,sp和bp 8位運算元,暫存器可以是 al,ah,bl,bh,cl...