用AspJpeg组件,按宽高比例,真正生成缩略图

laifangsong's .NET blog

取长补短,精益求精。 (打个广告,想做手机网站和asp/asp.net网站的可以跟我联系.QQ:25313644)
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

几种常用排序算法(asp.c#.c)

Posted on 2006-10-18 15:12  laifangsong  阅读(776)  评论(0编辑  收藏  举报

 

asp:


<%

Dim aData
aData 
= Array(3,2,4,15,6,0)

Call ResponseArray(aData, "原来顺序")
Call ResponseArray(SelectSort(aData), "选择排序")
Call ResponseArray(QuickSort(aData), "快速排序")
Call ResponseArray(InsertSort(aData), "插入排序")
Call ResponseArray(BubbleSort(aData), "冒泡排序")


'选择排序
Function SelectSort(a_Data)
    
Dim i, j, k
    
Dim bound, t
    bound 
= UBound(a_Data)

    
For i = 0 To bound-1
        k 
= i
        
For j = i+1 To bound
            
If CLng(a_Data(k)) > CLng(a_Data(j)) Then
                k 
= j
            
End If
        
Next
        t 
= a_Data(i)
        a_Data(i) 
= a_Data(k)
        a_Data(k) 
= t
    
Next

    SelectSort 
= a_Data
End Function


'快速排序
Function QuickSort(a_Data)
    
Dim i, j
    
Dim bound, t
    bound 
= UBound(a_Data)

    
For i = 0 To bound-1
        
For j = i+1 To bound
            
If CLng(a_Data(i)) > CLng(a_Data(j)) Then
                t 
= a_Data(i)
                a_Data(i) 
= a_Data(j)
                a_Data(j) 
= t
            
End If
        
Next
    
Next

    QuickSort 
= a_Data
End Function


'冒泡排序
Function BubbleSort(a_Data)
    
Dim bound
    bound 
= UBound(a_Data)
    
Dim bSorted, i, t
    bSorted 
= False
    
    
Do While bound > 0 And bSorted = False
        
        bSorted 
= True
        
For i = 0 To bound-1
            
If CLng(a_Data(i)) > CLng(a_Data(i+1)) Then
                t 
= a_Data(i)
                a_Data(i) 
= a_Data(i+1)
                a_Data(i
+1= t
                bSorted 
= False
            
End If
        
Next
        bound 
= bound - 1
    
Loop
    
    BubbleSort 
= a_Data
End Function


'插入排序
Function InsertSort(a_Data)
    
Dim bound
    bound 
= UBound(a_Data)
    
Dim i, j, t

    
For i = 1 To bound
        t 
= a_Data(i)
        j 
= i
        
Do While CLng(t)<CLng(a_Data(j-1)) And j>0
            a_Data(j) 
= a_Data(j-1)
            j 
= j - 1
        
Loop
        a_Data(j) 
= t
    
Next
        
    InsertSort 
= a_Data
End Function

'输出数组
Sub ResponseArray(a_Data, str)
    
Dim s
    s 
= ""
    Response.Write 
"<b>" & str & ":</b>"
    
For i = 0 To UBound(a_Data)
        s 
= s & a_Data(i) & ","
    
Next
    s 
= Left(s, Len(s)-1)
    Response.Write s
    Response.Write 
"<hr>"
End Sub

%
>

c#:
  1using System;
  2using System.Collections;
  3using System.ComponentModel;
  4using System.Data;
  5using System.Drawing;
  6using System.Web;
  7using System.Web.SessionState;
  8using System.Web.UI;
  9using System.Web.UI.WebControls;
 10using System.Web.UI.HtmlControls;
 11
 12namespace suanfa
 13{
 14    /// <summary>
 15    /// Sort 的摘要说明。
 16    /// </summary>

 17    public class Sort : System.Web.UI.Page
 18    {
 19        private void Page_Load(object sender, System.EventArgs e)
 20        {
 21            int i;
 22            int [] arrSortData;
 23            int[] arrData = new int[]{1,5,3,6,10,55,9,2,87,12,34,75,33,47};
 24            //输出未排序数据
 25            Response.Write("<b>原来数据:<b><br>");
 26            for(i=0; i<arrData.Length; i++)
 27            {
 28                Response.Write(arrData[i] + "&nbsp;");
 29            }

 30            Response.Write("<hr>");
 31            //输出冒泡排序结果
 32            arrSortData = bubbleSort(arrData);
 33            Response.Write("<b>冒泡排序结果:<b><br>");
 34            for(i=0; i<arrSortData.Length; i++)
 35            {
 36                Response.Write(arrSortData[i] + "&nbsp;");
 37            }

 38            Response.Write("<hr>");
 39            //输出快速排序结果
 40            arrSortData = quickSort(arrData);
 41            Response.Write("<b>快速排序结果:<b><br>");
 42            for(i=0; i<arrSortData.Length; i++)
 43            {
 44                Response.Write(arrSortData[i] + "&nbsp;");
 45            }

 46            Response.Write("<hr>");
 47            //输出插入排序结果
 48            arrSortData = insertSort(arrData);
 49            Response.Write("<b>插入排序结果:<b><br>");
 50            for(i=0; i<arrSortData.Length; i++)
 51            {
 52                Response.Write(arrSortData[i] + "&nbsp;");
 53            }

 54            Response.Write("<hr>");
 55            //输出选择排序结果
 56            arrSortData = selectSort(arrData);
 57            Response.Write("<b>选择排序结果:<b><br>");
 58            for(i=0; i<arrSortData.Length; i++)
 59            {
 60                Response.Write(arrSortData[i] + "&nbsp;");
 61            }

 62            Response.Write("<hr>");
 63            // 在此处放置用户代码以初始化页面
 64        }

 65        
 66        //冒泡排序
 67        private int[] bubbleSort(int[] arrData)
 68        {
 69            if(arrData.Length <= 1)
 70            {
 71                return arrData;
 72            }

 73            bool bAllHaveSort = false;
 74            for(int i=arrData.Length-1; i>0 && !bAllHaveSort; i--)
 75            {
 76                for(int j=0; j<i; j++)
 77                {
 78                    bAllHaveSort = true;
 79                    if(arrData[j] > arrData[j+1])
 80                    {
 81                        int temp = arrData[j];
 82                        arrData[j] = arrData[j+1];
 83                        arrData[j+1= temp;
 84                        bAllHaveSort = false;
 85                    }
    
 86                }

 87            }

 88            return arrData;
 89        }

 90        //快速排序
 91        private int[] quickSort(int[] arrData)
 92        {
 93            if(arrData.Length <= 1)
 94            {
 95                return arrData;
 96            }

 97            for(int i=0; i<arrData.Length-1; i++)
 98            {
 99                for(int j=i+1; j<arrData.Length; j++)
100                {
101                    if(arrData[i]>arrData[j])
102                    {
103                        int temp = arrData[i];
104                        arrData[i] = arrData[j];
105                        arrData[j] = temp;
106                    }

107                }

108            }

109            return arrData;
110        }

111        //插入排序
112        private int[] insertSort(int[] arrData)
113        {
114            if(arrData.Length <= 1)
115            {
116                return arrData;
117            }

118            for(int i=1; i<arrData.Length; i++)
119            {
120                int temp = arrData[i];
121                int j = i;
122                while(j>0 && arrData[j]<arrData[j-1])
123                {
124                    arrData[j] = arrData[j-1];
125                    j--;
126                }

127                arrData[j] = temp;
128            }

129            return arrData;
130        }

131        //选择排序
132        private int[] selectSort(int[] arrData)
133        {
134            if(arrData.Length <= 1)
135            {
136                return arrData;
137            }

138            for(int i=0; i<arrData.Length-1; i++)
139            {
140                int min = i;
141                for(int j=i+1; j<arrData.Length; j++)
142                {
143                    if(arrData[min]>arrData[j])
144                    {
145                        min = j;
146                    }

147                }

148                int temp = arrData[i];
149                arrData[i] = arrData[min];
150                arrData[min] = temp;
151            }

152            return arrData;
153        }

154        
155        Web 窗体设计器生成的代码
175    }

176}

177

c:

/*
排序
*/
#include 
"stdio.h"
#include 
"conio.h"

#define N 5

main()
{
    
int a[N]={2,4,3,2,1};

    output(
"original:",a);

    insertSort(a);
    selectSort(a);
    quickSort(a);
    bubbleSort(a);

    getch();
}

bubbleSort(
int a[])
{
    
int t;
    
int i,j;
    
int isOver=0;

    i
=N-1;
    
while(i>0 && !isOver)
    {
        isOver
=1;
        
for(j=0;j<i;j++)
        {
           
if(a[j]>a[j+1])
           {
              t
=a[j];
              a[j]
=a[j+1];
              a[j
+1]=t;
           }
           isOver
=0;
        }
        i
--;
    }
    output(
"bubble sort:",a);
}

quickSort(
int a[])
{
    
int t;
    
int i,j;

    
for(i=0;i<N-1;i++)
    {
        
for(j=i+1;j<N;j++)
        {
           
if(a[j]<a[i])
           {
                t
=a[i];
                a[i]
=a[j];
                a[j]
=t;
           }
        }
    }
    output(
"quick sort:",a);
}

selectSort(
int a[])
{
    
int t;
    
int i,j,k;

    
for(i=0;i<N-1;i++)
    {
        k
=i;
        
for(j=i+1;j<N;j++)
        {
           
if(a[j]<a[k])
           {
              k
=j;
           }
        }
        t
=a[i];
        a[i]
=a[k];
        a[k]
=t;
    }
    output(
"select sort:",a);
}

insertSort(
int a[])
{
    
int t;
    
int i,j;

    
for(i=1;i<N;i++)
    {
       t
=a[i];
       j
=i;
       
while(j>0 && t<a[j-1])
       {
           a[j]
=a[j-1];
           j
--;
       }
       a[j]
=t;
    }

    output(
"insert sort:",a);
}

output(
char s[],int a[])
{
   
int i;
   printf(
"\n%s ",s);
   
for(i=0;i<N;i++)
   {
        printf(
"%d ",a[i]);
   }
   printf(
"\n");
}