c语言中排序方法

发布网友 发布时间:2022-04-19 23:35

我来回答

4个回答

懂视网 时间:2022-05-02 05:06

//保存   
  sql="insert   into   p_ry_photo(id,photo)   values   (‘"+id+"‘,@i)";   
  SqlCommand   cmd=new   SqlCommand(sql,CommonVar.SqlConDataBase);   
  MemoryStream   s   =   new   MemoryStream();   
  picPhoto.Image.Save(s,System.Drawing.Imaging.ImageFormat.Jpeg);   
  byte[]   b   =   s.ToArray();   
  s.Close();   
  cmd.Parameters.Add("@i",SqlDbType.Image,(int)b.Length);   
  cmd.Parameters["@i"].Value=b;   
  cmd.ExecuteNonQuery();

 

 

//读取图象   

private   void   Readphoto(string   id)   
  {   
    try   
      {   
          string   ls_sql="select   photo   from   p_ry_photo   where   id=‘"+id+"‘";   
          this.picPhoto.Image=null;   
          this.picPhoto.Refresh();   
          SqlCommand   cmd=new   SqlCommand(ls_sql,CommonVar.SqlConDataBase);   
          SqlDataReader   reader=cmd.ExecuteReader();   
          while(reader.Read())   
              {   
                  byte[]   b   =   (byte[])reader[0];   
                  MemoryStream   s   =   new   MemoryStream(b);   
                  Bitmap   bmp   =   new   Bitmap(s);   
                  System.Drawing.Image   image   =   bmp;   
                  picPhoto.Image   =   image;   
                  s.Close();   
                  }   
            reader.Close();   
        }   
  catch(Exception   ex)   
  {   
        MessageBox.Show(ex.Message);   
  }   
  }

 

建议将上传图片以文件形式保存,然后在数据库中存入路径。数据库读写图片耗时太长,很不划算。

方法:C#在WinForm中如何将Image存入SQL2000和取出显示

标签:上传   lda   []   方法   取出   cat   ram   data   读写   

热心网友 时间:2022-05-02 02:14

1、冒泡排序(最常用)
冒泡排序是最简单的排序方法:原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。(注意每一轮都是从a[0]开始比较的)

以从小到大排序为例,第一轮比较后,所有数中最大的那个数就会浮到最右边;第二轮比较后,所有数中第二大的那个数就会浮到倒数第二个位置……就这样一轮一轮地比较,最后实现从小到大排序。

2、鸡尾酒排序
鸡尾酒排序又称双向冒泡排序、鸡尾酒搅拌排序、搅拌排序、涟漪排序、来回排序或快乐小时排序, 是冒泡排序的一种变形。该算法与冒泡排序的不同处在于排序时是以双向在序列中进行排序。
原理:数组中的数字本是无规律的排放,先找到最小的数字,把他放到第一位,然后找到最大的数字放到最后一位。然后再找到第二小的数字放到第二位,再找到第二大的数字放到倒数第二位。以此类推,直到完成排序。

3、选择排序
思路是设有10个元素a[1]-a[10],将a[1]与a[2]-a[10]比较,若a[1]比a[2]-a[10]都小,则不进行交换。若a[2]-a[10]中有一个以上比a[1]小,则将其中最大的一个与a[1]交换,此时a[1]就存放了10个数中最小的一个。同理,第二轮拿a[2]与a[3]-a[10]比较,a[2]存放a[2]-a[10]中最小的数,以此类推。

4、插入排序
插入排序是在一个已经有序的小序列的基础上,一次插入一个元素*
一般来说,插入排序都采用in-place在数组上实现。
具体算法描述如下:
⒈ 从第一个元素开始,该元素可以认为已经被排序
⒉ 取出下一个元素,在已经排序的元素序列中从后向前扫描
⒊ 如果该元素(已排序)大于新元素,将该元素移到下一位置
⒋ 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
⒌ 将新元素插入到下一位置中
⒍ 重复步骤2~5

热心网友 时间:2022-05-02 03:32

C语言中的排序算法很多,基础的就是冒泡排序,选择排序。除此之外还有希尔排序,快速排序,堆排序,桶排序,插入排序,基数排序等

热心网友 时间:2022-05-02 05:07

#include<iostream>
#include<stdlib.h>//qsort头文件
#include<algorithm>//sort头文件
using namespace std;
int cmp(const void*a,const void*b)//qsort()的排序规则
{
int *x=(int*)a;
int *y=(int*)b;
return *y-*x;//4321降序
//return *x-*y;//1234升序
}
int c(int a,int b)//sort()的排序规则
{
return a>b;//4321降序
//return a<b;//1234升序
}
int main()
{
int a[21]={3,4,1,2,5,6,7,2,7,8};
int b[21]={1,3,6,2,76,8,3,2,7,8};

qsort(a,10,sizeof(a[0]),cmp);//C语言快速排序函数

for(int i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");

sort(b,b+10,c);//C++快速排序函数

for(int i=0;i<10;i++)
printf("%d ",b[i]);
printf("\n");
return 0;
}
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com