问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

几种排序算法的演示,要求给出从初始开始时的每一趟的变化情况,并对各种排序算法的排序性能做分析和比较

发布网友 发布时间:2022-04-18 07:53

我来回答

3个回答

热心网友 时间:2022-04-18 09:23

//冒泡排序
#include <iostream>
using namespace std;
void print(int* a, int n){
for(int i=0; i<n; i++){
cout << a[i] << ' ';
}
cout << endl;
}
void sort(int* a, int n){
for(int i=0; i<n-1; ++i){//进行n-1次排序
bool f = true;
for(int j=0; j<n-1-i; j++){//两两相比
if(a[j]>a[j+1]){
int t = a[j];
a[j] = a[j+1];
a[j+1] = t;
f = false;
}
}
cout << "第" << i << "次:";
print(a, 10);
if(f)break;
}
}
int main()
{
int a[10] = {2,3,4,9,0,1,8,7,6,5};
cout << "排序前:";
print(a, 10);
sort(a, 10);
cout << "排序后:";
print(a, 10);
}

//选择排序
#include <iostream>
#include <algorithm>
using namespace std;
void print(int* a, int n){
for(int i=0; i<n; i++){
cout << a[i] << ' ';
}
cout << endl;
}
void sort(int* a, int n){
for(int i=0; i<n-1; i++){
int k = i;//假设i是最小的数的下标
for(int j=i+1; j<n; j++){
if(a[j]<a[k]) k = j;
}
if(i!=k) swap(a[i], a[k]);
cout << "第" << i << "次:";
print(a, 10);
}
}
int main()
{
int a[10] = {2,3,4,9,0,1,8,7,6,5};
cout << "排序前:";
print(a, 10);
sort(a, 10);
cout << "排序后:";
print(a, 10);
}

//快速排序
#include <iostream>
#include <algorithm>
using namespace std;
void print(int* a, int n){
for(int i=0; i<n; i++){
cout << a[i] << ' ';
}
cout << endl;
}
void sort(int* a, int n){
//当分组中的数据是1个或0个时,分组结束
if(n<=1)return;
//将数据分成两个组
int L = 0;
int R = n-1;
while(L<R){
while(L<R&&a[L]<=a[R]) R--;
swap(a[L], a[R]);
while(L<R&&a[L]<=a[R]) L++;
swap(a[L], a[R]);
}
//对左边的组再进行分组
sort(a, L);
//对右边的组再进行分组
sort(a+L+1,n-L-1);
}
int main()
{
int a[10] = {2,3,4,9,0,1,8,7,6,5};
cout << "排序前:";
print(a, 10);
sort(a, 10);
cout << "排序后:";
print(a, 10);
}

//插入排序
#include <iostream>
#include <algorithm>
using namespace std;
void print(int* a, int n){
for(int i=0; i<n; i++){
cout << a[i] << ' ';
}
cout << endl;
}
void sort(int* a, int n){
for(int i=1; i<n; ++i){
int t = a[i];//要插入的元素
int j = i;//要插入的位置
for( ; j>0&&a[j-1]>t; --j){
a[j] = a[j-1];
}
a[j] = t;
cout << "第" << i << "次:";
print(a, 10);
}
}
int main()
{
int a[10] = {2,3,4,9,0,1,8,7,6,5};
cout << "排序前:";
print(a, 10);
sort(a, 10);
cout << "排序后:";
print(a, 10);
}

热心网友 时间:2022-04-18 10:41

我去了。。15分这么多算法。。、
就写1个得了
快速排序第一趟
public class QuickSort {   public static void method(int[] array )   {   int i = 0 ;   int j = array.length - 1;   int k = array[0];   while(i != j)   {   while(array[j] > k)   {   j--;   }   int temp = k;   k = array[j];   array[j] = temp;   while (array[i] < k)   {   i++;   }   int temp1= k;   k = array[i];   array[i] = temp1;   }   if(k == array[j])   {   }   }   public static void main(String[] args)   {   int[] array = {49,38,65,97,76,13,27 };   QuickSort.method(array);   for(int i = 0; i < array.length; i++)   {   System.out.print(array[i] + " ");   }   }   }

热心网友 时间:2022-04-18 12:15

我是你同学,直接来找我。悬赏分给我。。。
握手!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...频数和频率成正比,2频数一定时,频率与总次数成反比,对不对_百度... ...总次数之间的关系是( ) A.频数越大,频率越大 B.总次数一定时,频数越... 实验的总次数、频数及频率三者的关系是( )A.频数越大,频率越大B.频数... 嘎牙鱼的做法大全 安无线网要用多少元网费要交多少元不用用了要不要交网费,想寻求大家的... 无线网费1年多少钱 "Hbr"作为“港”的缩写,其在英语中的使用频率和应用示例如何? 【车主点评:吉利汽车帝豪GL 使我荣华富贵】 请问,如果,家用,自动挡,帝豪gl,英朗,科沃兹,卡罗拉,轩逸,同等价位,建议... ...景点?既能休闲的时候看看又能长点知识@@谢谢各位了! 有没有丰胸的好办法啊? 丰胸有没有又快又好的方法? 求丰胸秘诀 丰胸的秘诀是什么? 我的手机被偷了,但我在淘宝上买了东西,我现在买的手机要怎么查询编码? 如何查淘宝衣服条形码 薏米大米燕麦米还有黑米一起煮粥吃有营养吗 燕麦米可以和赤小豆薏米一起煲吗 燕麦米,薏仁米,花生米,核桃仁可以放在一起吗 薏米燕麦米莲子有什么功效和作用? 燕麦薏米是不是不能同吃 烫好的面怎么做好吃啊 求快速排序算法动画演示,谁帮帮忙啊? 手机屏幕坏点 阿扎伦卡收获澳网正赛外卡了吗? 阿扎伦卡前男友 求一篇英文的贺卡,祝贺春节的,要短!!! 写张英文的春节贺卡 求英语新年贺卡 SEED50话中自由(流星装)VS神意的BGM WPS的页面设置——文档网络设置里,不能设置成每行43字符?为什么啊? 哪些简单动作有助轻松打造麒麟臂? 怎样训练才能让手臂的维度有所提升? 写出如合 锻练全身肌肉的方法 要写祥细 怎样制作健身器材——牧师椅 请问大佬有神话2005年上映的由成龙主演的高清视频在线观看资源吗 跪求神话故事电影有哪些,儿童,【在线观看】免费百度云资源 盘点国产经典神话老电影,【免费高清】在线观看百度网盘资源 盘点60年代的神话老电影,【免费高清】在线观看百度网盘资源 有什么关于神话的电影 一块点心平均分成九块贝贝吃了九分之二还剩多少块? 一般吃一块酥皮点心有多大热量?皮的热量大还是陷? 一( )点心 填量词 史上最搞笑的战役是什么,就因为一块糕点,最终爆发了一场战争? 作为一块点心,这么萌让人怎么下口 一天吃一张菜饼,一碗面条,一块点心,算不算吃多了? 一块枣泥点心,一杯酸奶,一杯豆浆,热量高吗? 允许显示悬浮窗的应用比如微信允许有什么作用 SM-A5100怎么开启软件悬浮窗? 大理石跟大理岩的区别?