以前也看过很多排序算法的原理,每次都想自己实现一下,一直都再拖,现在着牛课网学习算法课程,希望自己能够坚持练习。

//对于一个int数组,请编写一个选择冒泡算法,对数组元素排序。
//给定一个int数组A及数组的大小n,请返回排序后的数组。
//测试样例:
//[1, 2, 3, 5, 2, 3], 6
//[1, 2, 2, 3, 3, 5] #include <iostream>
using namespace std;
#include<string> void printResult(string str,int* A,int n)
{
cout << str << "的结果:\n";
for (int i = ; i < n; i++)
{
cout << A[i] <<" ";
}
cout << endl;
} void swap(int a, int b)
{
int temp=a;
a = b;
b = a;
} class BubbleSort {
public:
int* bubbleSort(int* A, int n) {
// write code here
for (int i = ; i<n; i++)
{
for (int j = ; j<n - i - ; j++)
{
if (A[j]>A[j + ])
{
int temp = A[j];
A[j] = A[j + ];
A[j + ] = temp;
}
}
}
return A;
}
}; //请编写一个选择排序算法
class SelectionSort {
public:
int* selectionSort(int* A, int n) {
// write code here
int k = ;
for (int i = ; i < n-; i++)
{
k = i;
for (int j = i; j < n; j++)
{
if (A[k]>A[j])
{
k = j;
}
}
if (k!=i)
{
int temp = A[i];
A[i] = A[k];
A[k] = temp;
}
}
return A;
}
}; //请编写一个选择插入算法 class InsertionSort
{
public:
int* insertionSort(int* A, int n)
{
for (int i = ; i < n; i++)
{
int temp = A[i];
int j = i - ;
for (; j >= ;j--) //j前面的已经排好序,从后面往前比较,当没有比当前值大的时候bereak;
{
if (A[j]>temp)
{
A[j + ] = A[j];
}
else
{
break;
}
}
A[j + ] = temp;
}
return A;
}
}; int main()
{ int N = ;
cout << "排序数据个数:\n";
cin >> N;
int* A = new int[N];
cout << "请输入待排序的数据:\n";
for (int i = ; i < N; i++)
{
cin >> A[i];
} BubbleSort bubble;
bubble.bubbleSort(A,N);
printResult("bubbleSort", A, N); SelectionSort select;
select.selectionSort(A, N);
printResult("selectSort", A, N); InsertionSort insert;
insert.insertionSort(A, N);
printResult("InsetSort", A, N); return ;
}

持续更新中......

排序算法的实现(冒泡,选择,插入 O(N*N)--理解方法实现的更多相关文章

  1. python排序算法的实现-冒泡

    1.算法描述: (1)共循环 n-1 次 (2)每次循环中,如果 前面的数大于后面的数,就交换 (3)设置一个标签,如果上次没有交换,就说明这个是已经好了的. 2.代码 #!/usr/bin/pyth ...

  2. C++学习(三十八)(C语言部分)之 排序(冒泡 选择 插入 快排)

    算法是解决一类问题的方法排序算法 根据元素大小关系排序 从小到大 从大到小冒泡 选择 插入 快排希尔排序 归并排序 堆排序 冒泡排序 从头到尾比较 每一轮将最大的数沉底 或者最小数字上浮 选择排序 1 ...

  3. python 数据结构与算法之排序(冒泡,选择,插入)

    目录 数据结构与算法之排序(冒泡,选择,插入) 为什么学习数据结构与算法: 数据结构与算法: 算法: 数据结构 冒泡排序法 选择排序法 插入排序法 数据结构与算法之排序(冒泡,选择,插入) 为什么学习 ...

  4. 排序算法的实现之Javascript(常用)

    排序算法的实现之Javascript 话不多说,直接代码. 1.冒泡排序 1.依次比较相邻的两个数,如果前一个比后一个大,则交换两者的位置,否则位置不变 2.按照第一步的方法重复操作前length-1 ...

  5. Python学习(三) 八大排序算法的实现(下)

    本文Python实现了插入排序.基数排序.希尔排序.冒泡排序.高速排序.直接选择排序.堆排序.归并排序的后面四种. 上篇:Python学习(三) 八大排序算法的实现(上) 1.高速排序 描写叙述 通过 ...

  6. 各类排序算法的实现C#版

    using System;using System.CodeDom;using System.Collections.Generic;using System.Linq;using System.Ru ...

  7. golang实现四种排序(快速,冒泡,插入,选择)

    本文系转载 原文地址: http://www.limerence2017.com/2019/06/29/golang07/ 前面已经介绍golang基本的语法和容器了,这一篇文章用golang实现四种 ...

  8. python排序算法的实现-插入

    1.算法: 设有一组关键字{ K 1 , K 2 ,…, K n }:排序开始就认为 K 1 是一个有序序列:让 K 2 插入上述表长为 1 的有序序列,使之成为一个表长为 2 的有序序列:然后让 K ...

  9. C#排序算法的实现---选择排序

    一.算法原理 每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完. 选择排序算法的运作如下: 1.对比数组中前一个元素跟后一个元素的大小 ...

随机推荐

  1. Codeforces - 220B Little Elephant and Array(莫队模板题)

    题意: m次查询.每次查询范围[L,R]中出现次数等于该数字的数字个数. 题解: 由于分块,在每次询问中,同一块时l至多移动根号n,从一块到另一块也是最多2倍根号n.对于r,每个块中因为同一块是按y排 ...

  2. 深入解析Vuex实战总结

    这篇文章主要介绍了Vuex的初探与实战小结,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. 1.背景 最近在做一个单页面的管理后台项目,为了提高开 ...

  3. POJ 3041 Asteroids | 匈牙利算法模板

    emmmmm 让你敲个匈牙利 #include<cstdio> #include<algorithm> #include<cstring> #define N 51 ...

  4. 仿今日头条按钮loading效果

    效果 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  5. javascript传递参数如果是object的话,是按值传递还是按引用传递?

    作者:苏墨橘链接:https://www.zhihu.com/question/27114726/answer/35481766来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  6. 《R语言实战》读书笔记--第三章 图形初阶(二)

    3.4添加文本.自定义坐标轴和图例 很多作图函数可以设置坐标轴和文本标注.比如标题.副标题.坐标轴标签.坐标轴范围等.需要注意的是并不是所有的绘图函数都有上述的参数,需要进行验证.可以将一些默认的参数 ...

  7. struts2中的文件上传和文件下载

    单文件文件上传 1.

  8. c#深拷贝的一个方法

    使用ef,有时候会遇到,要对一个对象进行拷贝复制,可是一般的方法,拷贝后会提示此对象的实例在上下文的 entitystate已经存在,就需要用一种拷贝.简单的拷贝只拷贝了值类型,对引用类型的拷贝需要使 ...

  9. 如何在Android 或Linux 下,做Suspend /Resume 的Debug【转】

    转自:http://blog.csdn.net/jacobywu/article/details/24735521 目录(?)[-] Question Answer 加boot 參數 no_conso ...

  10. EditText双光标问题

    模拟器会出现中双的光标   从没有字符开始输入多了一个竖线怎么回事?光标丢失就好了,下面是手机情况 修改样式更换一个样式试试看:比如我以前的是 android:theme="@android ...