用程序流程图表示“快速排序”和“冒泡排序” 什么意思?怎么写啊...
发布网友
发布时间:2022-04-25 22:40
我来回答
共1个回答
热心网友
时间:2022-04-23 08:48
冒泡排序思想 :每次前后两个比较,前面大就交换这两个,一直到最后这是一趟,需要n趟(小到大排序)
例如:4 2 7 1 8 对这几个数冒泡排序
2 4 7 1 8 第一趟第一次交换2 4
2 4 7 1 8 第一趟第二次
2 4 1 7 8 第一趟第三次
2 4 1 7 8第一趟第四次
第一趟结束 最大8冒到最后
第二趟 7冒上来
第三趟 4冒上来
第四趟 2冒上来
快排:每趟确定一个数的位置,大的全放到它的右边,小的放左边,这样它的左右又形成两个新的未排序数组,一直递归直到全部找到它们相应的位置
这样说不知道你理解了没?
例如: 4 2 1 7 8
i j
tmp = a[i] ;
while(i < j){
while(i<j&&a[j] > tmp)j--;
a[i] = a[j];
while(i<j&&a[i] < tmp)i++;
a[j] = a[i];
}
a[i] =tmp;
第一趟快排: 1 2 4 7 8
给分吧。打字好难