当前位置: 首页 > 编程日记 > 正文

12-09关于几种排序方式

一.选择排序

#include <stdio.h>

//选择排序 //记录最小的那个数的索引值

//下面这个循环就是去寻找最小的那个数的index

//有比k对应的值更小的

//判断是否需要交换

//k和i对应的值交换

void selectsort(int array[],int counttimes){

int k = 0;

for (int i = 0; i < counttimes - 1; i++) {

int  k = i ;

for (int j =i +1; j < counttimes; j ++) {

if (array[k] >array[j]) {

k = j ;

}

}

int temp;

if (k != i) {

temp = array[i];

array[i] = array[k];

array[k] = temp;

}

}

}

int main(int argc, const char * argv[]) {

int array[] = {1,25,8,22,2};

selectsort(array, 5);

for (int i = 0; i < 5; i++) {

printf("%d ", array[i]);

}

printf("\n");

return 0;

}

二.快速排序

#include <stdio.h>

void quicksort(int array[],int low,int high){

int i = low;

int j = high;

int temp = array[low];

if (low < high) {

while (i<j) {

while (i < j&& array[j] >= temp) {

j--;

}

array[i] = array[j];

while (i < j && array[i] <= temp) {

i ++;

}

array[j] = array[i];

}

array[i] = temp;

quicksort(array,0,i-1);

quicksort(array,i+1,high);

}

}

int main(int argc,const char * argv[]){

int array[] = {3,1,9,2,8,3,7,4};

quicksort(array, 0, 7);

for (int i = 0;i < 8;i++) {

printf("%d ",array[i]);

}

printf("\n");

return 0;

}

三.直接排序

#include <stdio.h>

void insertsort(int  array[],int elementNum){

int referenceNum = 0;

for (int i = 1; i < elementNum; i ++) {

referenceNum = array[i];

int j =i - 1;

for (; j>= 0; j--) {

if (array[j] > referenceNum) {

array[j+1] = array[j];

}else{

break;

}

}

if (j+1 != i ) {

array[j+1] = referenceNum;

}

}

}

int main(int argc,const char * argv[]){

int array[] = {5,4,6,2,1};

insertsort(array, 5);

for (int i = 0; i < 5; i ++) {

printf("%d ",array[i]);

}

printf("\n");

return 0;

}

转载于:https://www.cnblogs.com/liuzhicen/p/5033812.html

相关文章:

Redis事务介绍

概述 相信学过Mysql等其他数据库的同学对事务这个词都不陌生&#xff0c;事务表示的是一组动作&#xff0c;这组动作要么全部执行&#xff0c;要么全部不执行。为什么会有这样的需求呢&#xff1f;看看下面的场景&#xff1a; 微博是一个弱关系型社交网络&#xff0c;用户之间有…

那些按烂的Linux命令集合贴

#查看80端口运行情况netstat -anp|grep 80 #关闭某个进程(如8848pid) kill -9 8848 #运行java的war包 java -jar myproj.war #持续后台运行java项目 nohup java -jar myproj.war > log.file 2>&1 & #重启计算机(服务器)不推荐使用,并不是平滑地关闭程序应用,推荐…

colsure php_PHP Closure(闭包)类详解

闭包就是能够读取其他函数内部变量的函数。例如在javascript中&#xff0c;只有函数内部的子函数才能读取局部变量&#xff0c;所以闭包可以理解成“定义在一个函数内部的函数“。在本质上&#xff0c;闭包是将函数内部和函数外部连接起来的桥梁。 在php中,闭包函数一般就是匿名…

yjk只算弹性的不计算弹塑性_基于ANSYS Workbench的表面裂纹计算

一、写在前面本教程使用ANSYS Workbench17.0 进行试件表面裂纹的分析&#xff0c;求应力强度因子。需要提前说明的是&#xff0c;本案例没有工程背景&#xff0c;仅为说明裂纹相的计算方法&#xff0c;因此参数取值比较随意&#xff0c;大量设置都采用了默认值。对于实际工程&a…

《需求分析与系统设计》读书笔记1

这个月开始对《需求分析与系统设计》的阅读&#xff0c;在读这本书之前我先看了看网上对这本书的书评&#xff0c;了解到这本书论述了需求分析和系统设计的迭代增量式过程&#xff0c;并讨论了软件生命周期的其他阶段&#xff08;包括实现、测试和变化管理&#xff09;。本书提…

两个主键怎么设置tsql_索引该怎么创建?

1.2、索引 BTree 结构的特性&#xff1a;①、BTree 只有叶子节点会存储真实的数据&#xff0c;非叶子节点只会存储索引字段值&#xff1b;②、BTree的叶子节点之间使用 双向链表 链接&#xff0c;所以更加适合范围查询和排序&#xff1b;2、索引的类型&#xff1a;在平时创建的…

数据库连接池,实现及分析

在我们日常对数据库操作时存在一个问题&#xff0c;要为每次数据操作请求建立一个数据库连接。而每次建立连接都需要花费很多开销&#xff0c;如加载驱动类、注册驱动、获取连接&#xff0c;这样如果在短时间内连接多次&#xff0c;就 会耗费多余的时间(加载驱动注册驱动)*n次&…

BZOJ 1176: [Balkan2007]Mokia( CDQ分治 + 树状数组 )

考虑cdq分治, 对于[l, r)递归[l, m), [m, r); 然后计算[l, m)的操作对[m, r)中询问的影响就可以了. 具体就是差分答案排序离散化然后树状数组维护.操作数为M的话时间复杂度大概是O(M(logM)^2)-----------------------------------------------------------------------#include…

iOS开发之绝对布局和相对布局(屏幕适配)

在IOS的UI设计中也有绝对定位和相对定位&#xff0c;和我们的web前端的绝对定位和相对定位有所不同但又有相似之处。下面会结合两个小demo来学习一下我们IOS开发中UI的绝对定位和相对定位。在前面的博客中所用到的UI事例用的全是绝对定位&#xff0c;用我们Storyboard拖拽出来的…

设计模式5-抽象工厂模式

package DesignPattern;public class AbstractFactory {public static class Dough{}public static class Sauce{}public static class Veggies{}public static class Cheese{}public static class Pepperoni{}public static class Clams{}//披萨public static abstract class …

wp打印输出日志

System.Diagnostics.Debug.WriteLine(String); 转载于:https://www.cnblogs.com/songtzu/archive/2012/07/26/2609678.html

Element-ui表格选中回显

先瞄一下&#xff0c;是不是你要的效果 然后&#xff0c;废话不多说&#xff0c;直接上代码啦 1 <template>2 <div class>3 <div class"projectData">4 <el-table :data"tableData2" ref"multipleTable" :show…

iOS开发者帐号申请指南

如果你是一个开发团队&#xff0c;在你打算掏腰包购买iOS开发者授权之前&#xff0c;最好先问一下你的同事&#xff0c;是否已经有人获得了开发许可&#xff0c;因为一个开发许可一年内最多可以授权给111个设备来开发测试。如果你没有授权许可可以借用&#xff0c;或者你打算最…

Redis的KEYS命令引起宕机事件

摘要&#xff1a; 使用 Redis 的开发者必看&#xff0c;吸取教训啊&#xff01; 原文&#xff1a;Redis 的 KEYS 命令引起 RDS 数据库雪崩&#xff0c;RDS 发生两次宕机&#xff0c;造成几百万的资金损失作者&#xff1a;陈浩翔Fundebug经授权转载&#xff0c;版权归原作者所有…

GridView的编辑,更新,取消,删除等功能演示

GridView的编辑,更新,取消,删除等功能演示 这是一个GridView应用的视频&#xff0c;内容很透彻的讲解了GridView的很多实用的技巧。 下载地址&#xff1a;http://download.cnblogs.com/insus/ASPDOTNET/GridViewEditUpdateCancelDelete.rar posted on 2015-12-15 09:20 代码养家…

mac 使用homebrew 安装mysql

1. 安装homebrew ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" brew update 2.安装mysql brew install mysql 3.设置 MySQL 用户以及数据存放地址&#xff0c;下载的mysql的mysql_install_db文件中的路径有错误 需要重新设置一下文件路径&…

触控(Touch) 、 布局(Layout)

1 使用触控实现一个简易的画板 1.1 问题 触控&#xff08;Touch&#xff09;是一个UITouch类型的对象&#xff0c;当用户触摸了屏幕上的视图时自动被创建&#xff0c;通常使用触控实现绘图、涂鸦、手写等功能。本案例使用触控实现一个简易的画板&#xff0c;可以在画板上勾画出…

fail-fast和fail-safe的介绍和区别

2019独角兽企业重金招聘Python工程师标准>>> fail-fast和fail-safe 前言 前段时间公司招的实习生在使用迭代器遍历的时候,对集合内容进行了修改,从而抛出ConcurrentModificationException. 然后给他讲解之余也整理了这一篇文章. fail-fast ( 快速失败 ) 在使用迭代器…

hdu 4311 Meeting point-1

http://acm.hdu.edu.cn/showproblem.php?pid4311 思维呀 亲 你想到就可以做出来 想不到就做不出了 什么都不说了 上代码 不知道为什么 在hdu 上 long long 和 int 相乘就让我错 #include<iostream> #include<cstdio> #include<algorithm> #include<c…

Spring Boot 整合Pagehelper(为什么PageHelper分页不生效)

引入包https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter/1.2.10 <!--分页--><!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter --><dependency><groupId>com…

关于javascript的keycode

javascript event对象的具体功能是 event对象只在事件发生的过程中才有效&#xff08;比如鼠标点击&#xff0c;键盘按下等&#xff09;。event对象用以表示事件的状态&#xff0c;例如触发event对象的元素&#xff08;event.srcElement&#xff09;、鼠标的位置&#xff08;ev…

SQL-54 查找排除当前最大、最小salary之后的员工的平均工资avg_salary。

题目描述 查找排除当前最大、最小salary之后的员工的平均工资avg_salary。CREATE TABLE salaries ( emp_no int(11) NOT NULL,salary int(11) NOT NULL,from_date date NOT NULL,to_date date NOT NULL,PRIMARY KEY (emp_no,from_date));输出格式:avg_salary69462.5555555556SQ…

JqGridView 1.0.0.0发布

前几个月&#xff0c;客户要求显示列表做到列锁定表头锁定列组合,但从Extjs到Jquery EasyUi&#xff0c;从Jquery Grid到Telerik等等组件&#xff0c;发现无一符合条件&#xff0c;要么只能用列锁定&#xff0c;要么只能用列组合&#xff0c;当两者结合就不行了。于是只好开始自…

Struts2--ActionContext及CleanUP Filter

1. ActionContext ActionContext是被存放在当前线程中的&#xff0c;获取ActionContext也是从ThreadLocal中获取的。所以在执行拦截器、 action和result的过程中&#xff0c;由于他们都是在一个线程中按照顺序执行的&#xff0c;所以可以可以在任意时候在ThreadLocal中获取 Act…

HTML5跳转页面并传值以及localStorage的用法

1、首先&#xff0c;你得在那个页面把数据存入localStorage中吧。这个是必须的&#xff01; localStorage.setItem("user",JSON.stringify(data.allUser)); 用localStorage的setItem方法&#xff0c;这个方法看名字都知道得差不多了吧。。。setItem把数据存入localSt…

冒泡排序_python实现冒泡排序

冒泡排序是比较经典的面试题&#xff0c; 它重复地走访过要排序的元素列&#xff0c;依次比较两个相邻的元素&#xff0c;如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换&#xff0c;也就是说该元素列已经…

30分钟内让你明白正则表达式是什么,并对它有一些基本的了解(二)

测试正则表达式 如果你不觉得正则表达式很难读写的话&#xff0c;要么你是一个搞笑的天才&#xff0c;要么&#xff0c;你不是地球人。正则表达式的语法很令人头疼&#xff0c;即使对经常使用它的人来说也是如此。由于难于读写&#xff0c;容易出错&#xff0c;所以找一种工具对…

(区间dp 或 记忆化搜素 )Brackets -- POJ -- 2955

http://poj.org/problem?id2955 Description We give the following inductive definition of a “regular brackets” sequence: the empty sequence is a regular brackets sequence,if s is a regular brackets sequence, then (s) and [s] are regular brackets sequences…

[初级]深入理解乐观锁与悲观锁

2019独角兽企业重金招聘Python工程师标准>>> 在数据库的锁机制中介绍过&#xff0c;数据库管理系统&#xff08;DBMS&#xff09;中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。 乐观并发控制(乐观锁…

Umbra 3:次世代的遮挡裁剪

原文链接&#xff1a;http://www.gamasutra.com/view/feature/164660/sponsored_feature_next_generation_.php?print1 来自 Umbra Software [在这个主办方特辑中&#xff0c;Umbra Software讨论了当前使用的大量裁剪遮挡方法的优缺点&#xff0c;并解释了它自己的自动化遮挡…