排序
#include void myswap(int *a,int i,int j)//交換函式
void mysort(int *a,int len)//普通的氣泡排序 }
mysort1(a,len-1);
}void myprint(int *a,int len)//列印函式
printf("\n");
}void mysort2(int *a,int len)//氣泡排序(改進型)
} right--;
for(i = right; i > left; i--)
}left++; }
}void mysort3(int *a,int left,int right)//氣泡排序(改進型)遞迴方法
} right--;
for(i = right; i > left; i--) }
left++;
mysort3(a,left,right);
}void mysort4(int *a,int len)//選擇排序
} if(min != i)
} }
void mysort5(int *a,int len)//插入排序
a[j+1] = get; }}
void mysort6(int *a,int len)//二分插入排序
int j;
for(j = i-1; j >= left; j--)
a[left] = get; }}
//gap 步數
void mysort7(int *a,int len)//希爾排序
while(gap > 0)
a[j+gap] = get;
} gap = (gap-1)/2; }}
void herify(int *a,int index,int len)
}void mysort8(int *a, int len)//堆排序
//排序
int count = len;
for(i = len-1; i > 0; i--) }
void merge(int *a,int left,int mid,int right,int *temp )
while(i <= mid)
while(j <= right)
for(i = 0; i < k; i++) }
void mergesort(int *a,int left,int right,int *temp)//並歸排序
}int pation(int *a,int left,int right)
if(left < right)
while(a[right] >= pivot && left < right)
if(left < right)
} a[left] = pivot;
return left;
}void quicksort(int *a,int left,int right)//快速排序
}int main()
; int len = sizeof(a)/sizeof(int);
int temp[20];
//mysort(a,len);
//mysort1(a,len);
//mysort2(a,len);
//mysort3(a,0,len-1);
//mysort4(a,len);
//mysort5(a,len);
//mysort6(a,len);
//mysort7(a,len);
//mysort8(a,len);
//mergesort(a,0,len-1,temp);
quicksort(a,0,len-1);
myprint(a,len);
return 0;
}
資料結構(十一) 串
上一章我們說了棧與佇列這種基礎的資料結構,這一章我們簡單的來說說另一種資料結構 串,首先我們來了解下串是什麼?串 string 是由零個或多個字元組成的有限序列,又名叫字串。一般記為s a1a2 an n 0 其中,s 是串的名稱,用雙引號 有些地方也用單引號 括起來的字串行是串的值,注意單引號不屬...
十一章 資料結構
鍊錶 我們常用的儲存資料的方式無非就是陣列。使用陣列儲存資料的好處就是查詢快,但是它的弊端也很明顯 使用前需宣告陣列的長度,一旦宣告長度就不能更改 插入和刪除操作需要移動大量的陣列元素,效率慢 只能儲存一種型別的資料.n個節點離散分配 每乙個節點之間通過指標相連 每乙個節點有乙個前驅節點和乙個後繼節...
資料結構(十一)雜湊表結構
雜湊表實踐 h x x mod 10 的結果 4371 mod 10 1 1323 mod 10 3 6173 mod 10 3 4199 mod 10 9 4344 mod 10 4 9679 mod 10 9 1989 mod 10 9 將雜湊到同乙個值的所有元素保留在乙個鍊錶中 hi x ha...