七大基本排序算法之插入排序

 

import java.io.IOException;
import Input.InputString;

/**
 * 插入排序
 * @author xiaomi
 * 2012.3.29
 */
public class InsertSort {
	public static void main(String[] args) throws IOException{
		String s = InputString.getString();
		String[] str = s.split(" ");
		int[] a = new int[str.length];
		for(int i = 0;i < str.length;i++){
			a[i] = Integer.parseInt(str[i]);
		}
		insertSort(a);
		insertSort_i(a);
		for(int i = 0;i < a.length;i++){
			System.out.print(a[i]+" ");
		}
	}
	
	//method1
	public static void insertSort(int[] a){
		int out,in;
		for(out = 1;out < a.length;out++){
			for(in = 0;in<out;in++){
				if(a[out]<a[in]){
					break;
				}
			}
			int temp = a[out];
			for(int i = out;i > in;i--){
				a[i] = a[i-1];
			}
			a[in] = temp;
		}
	}
	
	//method2
	public static void insertSort_i(int[] a){
		int out,in;
		for(out = 1;out < a.length;out++){
			int temp = a[out];
			in = out;
			while(in>0&&a[in-1]>=temp){
				a[in] = a[in-1];
				in--;
			}
			a[in] = temp;
		} 
                 }
   
//method3
public static void insertsort(int[] a){
		for(int out = 0; out < a.length; out++){
			for(int in = out; in > 1; in--){
				if(a[in] < a[in-1]){
					int temp = a[in];
					a[in] = a[in-1];
					a[in-1] = temp;
				}
			}
		}
	}
 

 

七大基本排序算法之冒泡排序

七大基本排序算法之选择排序

七大基本排序算法之插入排序

七大基本排序算法之希尔排序

七大基本排序算法之堆排序

七大基本排序算法之快速排序

七大基本排序算法之归并排序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 冒泡排序: def bubble_sort(nums): for i in range(len(nums)-1): for j in range(len(nums)-i-1): if nums[j] > nums[j+1]: nums[j], nums[j+1] = nums[j+1], nums[j] return nums2. 选择排序: def selection_sort(nums): for i in range(len(nums)-1): min_idx = i for j in range(i+1, len(nums)): if nums[j] < nums[min_idx]: min_idx = j nums[i], nums[min_idx] = nums[min_idx], nums[i] return nums3. 插入排序: def insertion_sort(nums): for i in range(1, len(nums)): cur_val = nums[i] j = i - 1 while j >= 0 and nums[j] > cur_val: nums[j+1] = nums[j] j -= 1 nums[j+1] = cur_val return nums4. 希尔排序: def shell_sort(nums): gap = len(nums) // 2 while gap > 0: for i in range(gap, len(nums)): cur_val = nums[i] j = i while j >= gap and nums[j-gap] > cur_val: nums[j] = nums[j-gap] j -= gap nums[j] = cur_val gap //= 2 return nums5. 归并排序: def merge_sort(nums): if len(nums) <= 1: return nums mid = len(nums) // 2 left_list = merge_sort(nums[:mid]) right_list = merge_sort(nums[mid:]) return merge(left_list, right_list)def merge(left_list, right_list): res = [] while left_list and right_list: if left_list[0] < right_list[0]: res.append(left_list.pop(0)) else: res.append(right_list.pop(0)) res += left_list res += right_list return res6. 快速排序: def quick_sort(nums): if len(nums) <= 1: return nums pivot = nums[0] left_list = [x for x in nums[1:] if x < pivot] right_list = [x for x in nums[1:] if x >= pivot] return quick_sort(left_list) + [pivot] + quick_sort(right_list)7. 堆排序: def heap_sort(nums): n = len(nums) for i in range(n, -1, -1): heapify(nums, n, i) for i in range(n-1, 0, -1): nums[i], nums[0] = nums[0], nums[i] heapify(nums, i, 0) return numsdef heapify(nums, n, i): largest = i l = 2 * i + 1 r = 2 * i + 2 if l < n and nums[i] < nums[l]: largest = l if r < n and nums[largest] < nums[r]: largest = r if largest != i: nums[i], nums[largest] = nums[largest], nums[i] heapify(nums, n, largest)答:以上就是七大排序算法的Python代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值