您的位置:首页 > 其它

交换排序实现(冒泡排序,快速排序)

2008-03-05 13:44 435 查看
今天复习了数据结构的交换排序,写了个冒泡和快速排序的实现。

1 #include <stdio.h>
2
3 void bubble_sort(int *p, int size){
4 int i = 0, j = 0;
5
6 for(i = 0; i < size; i++)
7 for(j = 0; j < size - i; j++)
8 if (p[j] > p[j+1]){
9 p[j] = p[j] + p[j+1];
10 p[j+1] = p[j] - p[j+1];
11 p[j] = p[j] - p[j+1];
12 }
13 }
14
15 void quick_pass(int *p, int start, int end, int *mid){
16 int t = p[start];
17
18 while(start < end){
19 while(start < end && t < p[end])
20 --end;
21 p[start] = p[end];
22
23 while(start < end && t > p[start])
24 ++start;
25 p[end] = p[start];
26 }
27 p[start] = t;
28 *mid = start;
29 }
30
31 void quick_sort(int *p, int start, int end){
32 int mid = 0;
33 if (start < end){
34 quick_pass(p, start, end, &mid);
35 quick_sort(p, start, mid-1);
36 quick_sort(p, mid+1, end);
37 }
38 }
39
40 void show_data(int *p, int size){
41 int i = 0;
42
43 for(i = 0; i < size; i++)
44 printf("%d/t", p[i]);
45 printf("/n");
46 }
47
48 int main(){
49 int data[10] = {4, 9, 3, 1, 8, 0, 2, 5, 7, 6};
50 show_data(data, sizeof(data)/sizeof(int));
51 //bubble_sort(data, sizeof(data)/sizeof(int));
52 quick_sort(data, 0, 9);
53 show_data(data, sizeof(data)/sizeof(int));
54 return 0;
55 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: