(设排序从小到大)

  1. 冒泡排序

    这个大家都会,从第一个开始往后俩俩交换,然后第二个,最后到最后一个,复杂度n^2

  2. 选择排序

    思路和冒泡差不多,比如要得到从小到大的排序,就是从第一个开始,i取1~n,每次取[i,n]中的最小值,将最小值和a[i]交换。

    我写的垃圾代码,中间还写错了改了半天:

#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 0x3F3F3F3F; void show_ans(int a[], int n)
{
for (int i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
printf("\n");
} //这个函数有问题:
int find_min(int a[], int begin, int n, int& loc)
{
int min = maxn;
for (int i = begin; i < n; i++)
{
if (a[i] < min)
{
min = a[i];
loc = i;
//printf("%d\n",min);
//break; 这里不能写break,不然就找不到最小值啦,寻找全局性最小一定要全跑完
}
}
return min;
} //选择排序 从[i,n]中选择最小元素与a[i]交换
void selectSort(int a[], int n) //n是数组长度,因为数组传参的时候只传首地址,不能计算数组长度
{
for (int i = 0; i < n; i++)
{
int loc = 0;
int min = find_min(a, i, n, loc);
printf("%d min %d\n", i, min); //
swap(a[i], a[loc]);
show_ans(a, n);
printf("\n");
}
} int main()
{
int a[] = {4,3,2,1};
int n = sizeof(a)/sizeof(a[0]);
printf("%d\n", n);
selectSort(a, n);
for (int i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
system("pause");
}

晴神的书上例程:

void selectSort(int a[], int n) //n是数组长度,因为数组传参的时候只传首地址,不能计算数组长度
{
for (int i = 0; i < n; i++)
{
int k = i;
for (int j = i; j < n; j++)
{
if (a[j] < a[k])
{
k = j;
}
}
int temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}

非常简洁。

  1. 插入排序

to be continued...

最新文章

  1. thinkphp学习简易教程(二) thinkphp连接读取MySQL数据库
  2. NTP校时设置
  3. 【Java每日一题】20161025
  4. Html中模态框(弹出框)使用入门
  5. 做哪些优化,才能让 UITabelView 更顺滑?(转)
  6. 移动APP的IM后台架构浅析
  7. Code Hunters: Hello, world!
  8. SQLite不支持的SQL语法总结
  9. IOS 掉用系统发短信
  10. WeMall微信商城源码插件代金券部分代码
  11. Android Weekly Notes Issue #256
  12. SQL server学习(二)表结构操作、SQL函数、高级查询
  13. PHP 安装与配置(WIN10)
  14. Java通过实现Runnable接口来创建线程
  15. MD 的常用语法格式
  16. jQuery轮播图--不使用插件
  17. 微软笔记工具OneNote
  18. ACM-ICPC 2018 徐州赛区网络预赛 G题
  19. Android:(本地、可通信的、前台、远程)Service使用全面介绍
  20. Gym 101201H Paint (离散化+DP)

热门文章

  1. ubuntu图标
  2. 移动GPU分类/百科
  3. WebJar的打包和使用  
  4. mongodb(一)
  5. 如何删除一个win10的服务
  6. 常见HTTP请求错误码
  7. SpringCloud升级之路2020.0.x版-44.避免链路信息丢失做的设计(1)
  8. pcm.x代码分析
  9. shell编程100列
  10. perl中tr的用法(转载)