交换排序(冒泡排序与快速排序)
2021-05-07 13:32
标签:位置 temp 最好 bubble code nbsp style bsp ret 冒泡排序时间复杂度为o(n2); 交换排序(冒泡排序与快速排序) 标签:位置 temp 最好 bubble code nbsp style bsp ret 原文地址:https://www.cnblogs.com/dhhu007/p/13183675.html 1 //冒泡排序
2 void BubbleSort(int array[], int n)
3 {
4 int i, j;
5 for (i = 0; i 1; ++i)
6 {
7 for (j = 0; j 1; ++j)
8 {
9 if (array[j] > array[j + 1])//当前者大于后者为真时是从小到大排序,若前者小于后者为真时是从大到小排序
10 {
11 //swap(array[j],array[j+1];//位置交换使用swap()函数最好提前定义该函数;
12 int temp = array[j];
13 array[j] = array[j + 1];
14 array[j + 1] = temp;
15 }
16 }
17 }
18 }
1 //快速排序01
2 void InsertSort(int array[], int left,int right)
3 {
4 int i = left;
5 int j = right;
6 int temp = array[left];
7 if (left > right)
8 return;
9 while (i j)
10 {
11 while (i = temp)
12 {
13 j--;
14 }
15 swap(array[i], array[j]);//将比枢轴移小的数据移至低端
16 while (i temp)
17 {
18 i++;
19 }
20 swap(array[i], array[j]);//将比枢轴移大的数据移至搞端
21 }
22 InsertSort(array, left, i-1);//对低子表递归
23 InsertSort(array, i+1, right);//对高子表递归
24 }
1 //快速排序02
2 void InsertSort(int array[], int left,int right)
3 {
4 int i = left;
5 int j = right;
6 int temp = array[left];
7 if (left > right)
8 return;
9 while (i j)
10 {
11 while (i = temp)
12 {
13 --j;
14 }
15 while (i temp)
16 {
17 ++i;
18 }
19 swap(array[i], array[j]);//左侧比枢轴大的数据与右侧比枢轴小的数据交换位置
20 }
21 swap(array[left], array[i]);//将左侧枢轴交换至中间合适位置
22 InsertSort(array, left, i-1);//对低子表递归
23 InsertSort(array, i+1, right);//对高子表递归
24 }
下一篇:Spring的事务管理